2
我有一个Grails应用程序我创建了一个格里历日历格林威治时间日期。一天中的时间是11:00:00 PM GMT
。我为公历日历对象添加了3个小时,它将当天的时间更改为2:00:00 AM
,但它并没有增加一年中的某一天。当我给日历添加几小时时,我必须检查这个情况,如果新的时间过去了,我必须增加一年中的某一天。这看起来像GregorianCalendar类中的一个错误,但要确保我没有做错什么。以下是我添加小时的不同方式。问题与格式化日历添加小时
myCalender.add(Calender.HOUR,3)
和
myCalender.add(Calender.HOUR_OF_DAY,3)`
和
myCalender.setTimeInMillis(myCalender.getTimeInMillis() + (((1000 * 60) * 60) * 3))`
如果开始日期和时间例如6/1/2011 11:00:00 PM GMT
和我执行上面的代码,我希望新的日期和时间是6/2/2011 02:00:00 AM GMT
但我得到的是6/1/2011 02:00:00 AM GMT
。有人可以教育我吗?
感谢您的答复我的问题。看看你的代码,我认为我的问题是在我的本地时区。您使用UTC创建了GregorianCalendar,并在显示日期时使用了也设置为UTC的DateFormat。当我查看日期时间时,我没有将DateFormat设置为UTC,因此它在我的本地时区中显示日期时间。我的本地时间少于UTC,因此比前一天少。现在对我更有意义了,谢谢! – 2011-06-09 16:27:47
我怀疑时区,这就是我明确使用UTC的原因。很高兴我能帮忙,考虑接受答案,如果它解决了你的问题。 – 2011-06-09 19:43:23