2013-04-25 40 views
2

我有以下代碼並在Calendar實例上調用getTimeInMillis()。我期望返回值是相同的,但它會在運行之間返回不同的結果。Calendar.getTimeInMillis()爲同一個實例返回不同的結果

結果來了,下面是不同的。我做錯了什麼,需要改變什麼?

時間1369454400208 時間1369454400185 時間1369454400926

public class MyTest { 

public static void main(String[] args){ 

    Calendar calendar = new GregorianCalendar(); 

    calendar.set(calendar.YEAR, 2013); 
    calendar.set(calendar.MONTH, 4); 
    calendar.set(calendar.DATE, 24); 
    calendar.set(calendar.HOUR, 12); 
    calendar.set(calendar.MINUTE, 00); 
    calendar.set(calendar.SECOND, 00);  

    System.out.print("Time " + calendar.getTimeInMillis()); 

} 

回答

13

您需要重置毫秒爲好。

calendar.set(Calendar.MILLISECOND, 0); 

注意你應該使用Calendar.*訪問靜態字段,不calendar.*

+0

它工作。謝謝鄧肯。 – Jay 2013-04-25 17:26:21

+0

明白了。創建此測試代碼時發生:-(。感謝您指出。 – Jay 2013-04-25 17:34:12

+0

您是指使用Calendar。*,然後使用Calendar.getTimeInMillis()? – 2015-05-11 08:05:43

相關問題