【发布时间】:2011-05-02 00:39:29
【问题描述】:
我不明白为什么MutableDateTime.setDate() 将时间设置为“昨天”(请参阅日志时间戳小时 - 现在是 20:28)。这个时区是否相关?我需要在格式化程序上设置一些东西吗?
我希望在使用“2010 年 10 月 27 日”调用 setDate 后,日期将与解析日期 00:00 EDT 10/27/10 相同,而不是 20:28 EDT 10/26/10 .这是从“现在”开始的 24 小时前。
我在这里遗漏了什么,或者我应该如何编辑代码以获得所需的结果?我是 Joda Time 的新手,想解开这个谜。
DateTimeFormatter dateFormatterJ = DateTimeFormat.forPattern("MM/dd/yyyy");
DateTimeFormatter timestampFormatJ = DateTimeFormat.forPattern("HH:mm zzz MM/dd/yy");
MutableDateTime startDate = new MutableDateTime();
log.info("parsed date " +
timestampFormatJ.print(dateFormatterJ.parseMutableDateTime(startDateString)));
startDate.setDate((dateFormatterJ.parseMutableDateTime(startDateString)));
log.info("startDate: " + timestampFormatJ.print(startDate));
在这种情况下,startDateString 就是“10/27/2010”。
这里是日志输出:
10-27 20:28:55 INFO parsed date: 00:00 EDT 10/27/10
10-27 20:28:55 INFO startDate: 20:28 EDT 10/26/10
谢谢
【问题讨论】: