2017-06-21 85 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值。

调用其中一个指示的功能。