Java 重置其他字段后,如何重置日历对象中的时间参数?
我获取当前的Java 重置其他字段后,如何重置日历对象中的时间参数?,java,android,Java,Android,我获取当前的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.MILL
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...
所有其他字段似乎都相同
我想我有两个问题
时间
参数,是否会自动设置arefieldset
李>
如果您已经阅读了
java.util.Calendar
的Javadocs,您应该会看到
set(f,value)
将日历字段f
更改为value
。此外,它还设置了一个内部成员变量,以指示日历字段f
已更改。尽管日历字段f
会立即更改,但在下次调用get()
,getTime()
,getTimeInMillis()
,add()
或roll()
之前,不会重新计算日历的时间值(以毫秒为单位)
调用指定的函数之一