在JodaDate中单独更改偏移量而不更改日期和时间信息

时间:2012-06-12 12:52:31

标签: java datetime date jodatime datetimeoffset

我得到一个像这样的字符串“2012-07-01T06:00 +02:00”作为输入。这是在CET。 但是这个字符串应该是“2012-07-01T06:00 +01:00”。

我们无法更改原始来源的任何内容。

现在我希望将该日期设为我的系统预期的“2012-07-01T06:00 +01:00”。

我正在使用Joda Library。 我读了将DateTimeZone指定为德国的日期。

在此日期,一旦我将Europe / London指定为DateTimeZone,日期就会变为 “2012-07-01T05:00 +01:00”(我的系统不是预期值,请参阅小时更改)。

有没有办法不使用字符串操作?

1 个答案:

答案 0 :(得分:1)

因此,您输入已损坏,解析它的唯一方法是使用字符串操作函数修复它,然后使用具有指定时间偏移的日期解析器。

如果您知道字符串包含+01:00偏移量的时间,则应使用substring()从字符串中删除偏移量,并使用明确指定withZone(DateTimeZone.forOffsetHours(1))的DateTimeFormat,完全忽略输入的偏移量。

但只有当你100%确定问题出在输入字符串中时才会这样。