2012-10-02 99 views
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; 

這看起來稍微複雜。我想知道是否有任何我可能錯過的捷徑。謝謝。

回答

9
Calendar myCal = Calendar.getInstance(); 
myCal.setTimeInMillis(milliseconds); 
return myCal.get(Calendar.HOUR_OF_DAY) == 0 
     && myCal.get(Calendar.MINUTE) == 0 
     && myCal.get(Calendar.SECOND) == 0 
     && myCal.get(Calendar.MILLISECOND) == 0 
相關問題