我在我的日历实例上设置时间如下
private Calendar mCalendar = Calendar.getInstance();
public void onTimeSet(int hourOfDay, int minute, int second) {
int year = mCalendar.get(Calendar.YEAR);
int monthOfYear = mCalendar.get(Calendar.MONTH);
int dayOfMonth = mCalendar.get(Calendar.DAY_OF_MONTH);
Calendar lCalendar = Calendar.getInstance();
lCalendar.set(year, monthOfYear, dayOfMonth, hourOfDay, minute);
Date lDate = lCalendar.getTime();
if (lDate.before(new Date())) {
return;
} else {
mCalendar.set(year, monthOfYear, dayOfMonth, hourOfDay, minute);
setItemTime();
}
}
但是,在Calendar lCalendar和mCalendar的实例上调用getTime()时,我得到的日期实例化时间不是来自日历实例上设置的hourOfDay和minute参数.此外,如果我在任一个实例上再次调用getTime()方法,我会得到正确的时间.
为什么会发生这种情况,我该如何解决这个问题呢?
最佳答案 通过Section,Field Manipulation
at Calendar Documentation
基本上,您设置字段而不是时间并尝试获取时间而不是单个设置字段.根据文档,调用set(…)函数后,日历时间不会立即更新.
在那里,阅读之间的线,
The specifics are determined by the concrete calendar class.
所以我想,无法提供通用答案.