2012-11-08 50 views
1

考慮下面的代碼片段瞭解日曆時間,澄清需要

System.out.println(System.currentTimeMillis()); 

    Calendar calendarInstance = Calendar.getInstance(); 
    System.out.println(calendarInstance.getTimeInMillis()); 

    // Get current 
    int year = calendarInstance.get(Calendar.YEAR); 
    int month = 1 + calendarInstance.get(Calendar.MONTH); 

    calendarInstance.set(year, month, 7 , 19, 00); 

    System.out.println(calendarInstance.getTimeInMillis()); 

第2個印有「相當多,現在」。第三個是昨天下午7點。爲什麼第三個數字是最大的?

  1. 1,352,389,069,723
  2. 1,352,389,069,734
  3. 1,354,669,249,734

糾正我,如果我錯了,但在

calendarInstance.set(year, month, 7 , 19, 00); 

我們正在處理2012, 11, the 7th day, 7 pm

我在想什麼?

回答

3

您剛剛添加了1個月迄今。所以這是未來。

int month = 1 + calendarInstance.get(Calendar.MONTH); 

這可能會讓人困惑,但我猜你會加1,因爲月份是基於Java的0-索引。不幸。

+0

+1。無論日曆月份是基於0日期還是基於1日期,沒有理由認爲這在輸入或輸出方面會有所不同。無論什麼價值你回來應該是很好的回傳作爲「本月」... –