我得到一个像这样的字符串“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”(我的系统不是预期值,请参阅小时更改)。
有没有办法不使用字符串操作?
答案 0 :(得分:1)
因此,您输入已损坏,解析它的唯一方法是使用字符串操作函数修复它,然后使用具有指定时间偏移的日期解析器。
如果您知道字符串包含+01:00偏移量的时间,则应使用substring()
从字符串中删除偏移量,并使用明确指定withZone(DateTimeZone.forOffsetHours(1))
的DateTimeFormat,完全忽略输入的偏移量。
但只有当你100%确定问题出在输入字符串中时才会这样。