【发布时间】:2016-10-09 19:30:25
【问题描述】:
我正在测试来自the list on this site 的以下值:
常规日期:500,1 月 1 日 = Unix 时间戳:-46388678400
但是,在 Android 上运行以下 Java 代码:
GregorianCalendar calendar = new GregorianCalendar(500, 0, 1, 0, 0, 0);
calendar.setTimeZone(TimeZone.getTimeZone("UTC"));
Log.d("timestamp", String.valueOf(calendar.getTimeInMillis() / 1000L));
Log.d("date", String.valueOf(calendar.getTime()));
输出以下结果:
-46388592000
Sat Jan 01 02:00:00 GMT+02:00 500
尝试the same online converter 和其他一些带有我从 Android 程序获得的 Unix 时间戳的网站,我得到了一整天的差异:
Android app: -46388592000 = Sat Jan 01 00:00:00 GMT
Online sites: -46388592000 = Sat Jan 02 00:00:00 GMT
我的问题是:谁错了?在线转换器,还是 Android 上的 Java 代码?
Android/Java 在如此大的数字上是否会降低准确性?还是因为闰秒?
【问题讨论】:
标签: java android datetime unix unix-timestamp