2017-06-21 86 views
0

我得到當前Calendar對象,並記錄其價值重置其他字段後如何重置Calendar對象中的時間參數?

Calendar now = Calendar.getInstance(); 
Log.v(TAG,now.toString()) 

我設定的時間上now和日誌價值

now.set(Calendar.HOUR, 20 % 12); 
now.set(Calendar.MINUTE,00); 
now.set(Calendar.HOUR_OF_DAY,20); 
now.set(Calendar.SECOND,0); 
now.set(Calendar.MILLISECOND,0); 
Log.v(TAG,now.toString()) 

當我做由兩個日誌的並排比較,我看到差異

java.util.GregorianCalendar[time=1498086510685,areFieldsSet=true... 
java.util.GregorianCalendar[time=?,areFieldsSet=false... 

所有其他領域似乎同樣

我想我有兩個問題

  1. 如何設置time它是正確的價值?
  2. 如果我重置time參數,將自動設置areFieldsSet

回答

1

如果你曾經讀過的Javadoc java.util.Calendar,你應該做的,你會看到

set(f, value)改變日曆字段fvalue。另外,它設置一個內部成員變量來指示日曆字段f已被更改。雖然日曆字段f立即更改,但直到下一次撥打get(),getTime(),getTimeInMillis(),add()roll(),纔會重新計算以毫秒爲單位的日曆的time值。

調用其中一個指示的功能。