0

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

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

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

我正在使用乔达图书馆。我阅读了将 DateTimeZone 指定为德国的日期。

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

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

4

1 回答 1

1

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

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

但只有当您 100% 确定问题出在输入字符串中时。

于 2012-06-12T13:10:30.367 回答