从Unix时间转换为Java日历

Oss*_*ama 7 java calendar unix-timestamp

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

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

输出:

Comment posted on:Sat Jan 17 11:03:50 EST 1970
Run Code Online (Sandbox Code Playgroud)

码:

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());
Run Code Online (Sandbox Code Playgroud)

Jon*_*oni 21

Java使用毫秒时间戳,而Unix时间戳通常以秒为单位进行测量.将Unix时间戳乘以1000L得到正确的时间.

  • 我犯的一个愚蠢的错误是使用 1000 乘以存储为整数的 unixtime,这会导致整数溢出。因此 1000 后面的 L 很重要,因为它将文字提升为长整数,从而强制得到长结果。(仅供那些想知道为什么有 L 的人使用) (2认同)