我编写了这个方法来将 unix 时间转换为日历对象:
/**
* Converts Unix time to Calendar instance.
*/
public static Calendar unixToCalendar(long unixTime){
Calendar calendar = new GregorianCalendar(1970/*Year*/, GregorianCalendar.JANUARY/*0*/, 1 /*Day*/, 00, 0);
calendar.add(Calendar.MINUTE, (int) (unixTime/60/* Sec to Min */));
return calendar;
}
问题是,对于更大的输入值,我得到的实际时间与结果之间的差异正好是一小时。
差异从 796000000 值之间的某个地方开始......
例如,直到 796000000 我们得到相同的结果(与现实匹配),但对于 797000000 及以上,我们得到一小时的差异(我的代码在一小时前)。
如果我使用:
calendar.setTimeInMillis(unixTime*1000);
与现实相差 3-2 小时(相同的值),我遇到了同样的问题。
我使用了一些在线网站来检查自己,我正在寻找 GMT 0 的结果。 http://www.epochconverter.com/ http://www.onlineconversion.com/unix_time.htm
谢谢