从Unix时间转换为Java日历

时间:2013-12-05 08:21:47

标签: java calendar unix-timestamp

以下是让我发疯的原因,为什么我在使用下面的代码转换Unix时间1386230874时得到了错误的日历日期!!

这应该是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 个答案:

答案 0 :(得分:19)

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

答案 1 :(得分:2)

Unix测量时间为秒数(“1386230”秒[你用setTimeInMillis为几秒到几毫秒]是“16.04433”天)和epoch(1970年1月1日+ 16.04天)是1月17日它正在运作) - 所以试试这个

facebook_created_time_calendar
    .setTimeInMillis(1386230874L * 1000);