我获取当前的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...
所有其他字段看起来都是相同的
我想我有两个问题
time
设置为正确值? areFieldsSet
参数,会自动设置time
吗? 答案 0 :(得分:1)
如果您已阅读java.util.Calendar
的Javadoc,您应该这样做,您会看到
set(f, value)
将日历字段f
更改为value
。此外,它还设置一个内部成员变量,以指示日历字段f
已更改。虽然日历字段f
会立即更改,但在下次调用time
,get()
,{{1}之前,不会重新计算日历的getTime()
值(以毫秒为单位) },getTimeInMillis()
或add()
。
调用其中一个指示的函数。