2013-05-02 74 views
0

當我得到日曆的實例時,根據文檔,該月的第一天應該是1。當我創建日曆實例時,該月的第一天= 2

Calendar cal = Calendar.getInstance(); 
cal.set(Calendar.DAY_OF_MONTH, 1); 
System.out.println(cal.getTimeInMillis()); 

它打印 「1367366400」,這是 「04/30/13」 的時間戳,比前一個月的最後一天。

我可以將其設置爲「2」,使用它像這樣:

for (int i = 2; i <= 32; i++) { 

但這只是看起來很奇怪! 有什麼建議嗎? 謝謝!

+0

您如何確定1367366400是「04/30/13」的時間戳? – 2013-05-02 08:40:58

+1

我使用了http://www.onlineconversion.com/unix_time.htm,它給了我一個週三的日期,2013年5月1日00:00:00 GMT。也許你已經使用了一種在不同時區呈現當地時間的方法? – 2013-05-02 08:41:57

+0

你是對的,它一定是unixtime轉換器。 – joekeee 2013-05-02 09:05:23

回答

1

,而不是打印時間以毫秒和轉換檢查,打印日期,年份和月份是這樣的:

System.out.println("Year: " + cal.get(Calendar.YEAR)); 
    System.out.println("Month: " + (cal.get(Calendar.MONTH) + 1)); 
    System.out.println("Days: " + cal.get(Calendar.DAY_OF_MONTH)); 

我想你的代碼是好的。

+0

好吧,多虧了這個,我想這個問題在別的地方。 – joekeee 2013-05-02 09:07:15

相關問題