我有一个非常奇怪的问题。我写了以下代码:
public static final long ONE_DAY_IN_MS = 86400000L;
public static long getTimeOfTheDayInMs() {
return System.currentTimeMillis() % ONE_DAY_IN_MS;
}
这应该返回自午夜以来的毫秒数,对吧?好吧,是也不是,因为它返回自午夜以来的时间减去一小时。这是为什么?为什么这个代码:
System.out.println(new Date(System.currentTimeMillis()));
System.out.println(new Date(getTimeOfTheDayInMs()));
返回这个??
18-jul-2013 12.34.03
1-jan-1970 11.34.03
我还发现这个问题似乎是从 1992 年 3 月 30 日开始出现的。
有没有人和我一样的问题?有人可以解释我为什么吗?
提前致谢,
PS:这个问题出现在我的 Windows PC 和我的 Android 平板电脑上。