grails - 向公历添加小时的问题

标签 grails groovy gregorian-calendar

我有一个 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/

相关文章:

java - 使用 ANT 编译 groovy 脚本时不支持 Major.minor 版本 51.0

class - 如何在类中使用 Jenkins 插件?

mongodb - grails,mongodb-多个数据库

Grails 异步 - 创建 promise

gradle - Gradle任务中的变量$ it:引用:《 Gradle in Action》

1900 年之前的 Android 日期选择器

java - 将生日转换为毫秒

html - grails链接在Internet Explorer中不起作用

grails - 具有3个或更多数据源的GORM集成测试

java - 公历