有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从Unix时间到Java日历的转换

下面的内容让我抓狂,为什么我在使用下面的代码转换Unix时间1386230874时得到了错误的日历日期

这应该是2013年12月5日星期四19:07:54

输出:

Comment posted on:Sat Jan 17 11:03:50 EST 1970

代码:

Calendar facebook_created_time_calendar = Calendar.getInstance(TimeZone.getTimeZone("Australia/Sydney"));    
facebook_created_time_calendar.setTimeInMillis(1386230874);
out.print("Comment posted on:");
out.println(facebook_created_time_calendar.getTime());

共 (2) 个答案

  1. # 1 楼答案

    Java使用毫秒时间戳,而Unix时间戳通常以秒为单位。将Unix时间戳乘以1000L以获得正确的时间

  2. # 2 楼答案

    Unix以秒为单位测量时间(“1386230”秒[你用setTimeInMillis将秒改为毫秒]是“16.04433”天),并且从epoch(1970年1月1日+16.04天是1月17日)开始,它就开始工作了-所以试试这个

    facebook_created_time_calendar
        .setTimeInMillis(1386230874L * 1000);