2

我有一个以毫秒为单位的时间戳,即1349557200000. 如何检查它是否发生在我当前时区的午夜?

我想出的最好的方法是:

Calendar mycal = Calendar.getInstance();
Integer offset = (mycal.get(Calendar.ZONE_OFFSET) + mycal.get(Calendar.DST_OFFSET)) * (60 * 1000);
Boolean isAtMidnight = 1349557200000L % (24L * 60L * 60L * 1000L)) == (long) offset ? true : false;

这看起来有点复杂。我想知道是否有任何我可能遗漏的快捷方法。谢谢。

4

1 回答 1

10
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(milliseconds);
return cal.get(Calendar.HOUR_OF_DAY) == 0
       && cal.get(Calendar.MINUTE) == 0
       && cal.get(Calendar.SECOND) == 0
       && cal.get(Calendar.MILLISECOND) == 0;
于 2012-10-02T11:03:25.580 回答