2013-07-22 25 views
2
DateTimeFormatter DATEFORMAT = ISODateTimeFormat.dateTimeNoMillis(); 

String testDate = "2013-10-26T04:23:14-08:00"; 

System.out.println(testDate); 
System.out.println(DATEFORMAT.parseDateTime(testDate).toString(DATEFORMAT)); 

输出:日期时间解析 - 无法找回原来的值

2013-10-26T04:23:14-08:00 
2013-10-26T05:23:14-07:00 

为什么输出关闭了大约一个小时?我需要指定什么其他参数将DateTime转换回字符串?

任何帮助,非常感谢。

+3

不同的时区? –

+1

可能的夏令时问题? – Alfie

+0

您正在运行的计算机位于T5时区,您将它交给T4时区。他们的意思是完全相同的时间。 –

回答

0

我假设这是使用乔达时间库。正如上面的评论所暗示的那样,这是一个TZ问题。您可以通过DateTime对象上的方法调用轻松地将任何时间转换为您选择的TZ或UTC。沿线的东西:

dt.withZone(DateTimeZone.UTC);

由于默认行为是在系统当前时区中打印DateTime,因此您会得到不同的结果。