我有一个 Grails 应用程序,我创建了一个公历 GMT 日期。当天的时间是 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
。有人可以教育我吗?
最佳答案
对我有用:
final DateFormat format = SimpleDateFormat.getDateTimeInstance();
format.setTimeZone(DateUtils.UTC_TIME_ZONE);
final GregorianCalendar cal = new GregorianCalendar(DateUtils.UTC_TIME_ZONE);
cal.set(2011, Calendar.JUNE, 1, 23, 30, 0);
System.out.println(format.format(cal.getTime()));
cal.add(Calendar.HOUR_OF_DAY, 1);
System.out.println(format.format(cal.getTime()));
产品:
2011-06-01 23:30:00
2011-06-02 00:30:00
关于grails - 向公历添加小时的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6283116/