OffsetDateTime时间正在改变区域偏移

时间:2017-01-30 17:04:59

标签: java scala datetime java-time

所以我有一段代码,基本上应该接受一个日期时间字符串并以完全相同的格式返回

val dateString = "2016-01-01T01:30:55.000+00:00"
println("before: " + dateString)
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS+hh:mm")
val date = OffsetDateTime.parse(dateString)
println("after: " + date.format(formatter))

然而,当我尝试将其重新转换为字符串时,我得到了不同的偏移量!

before: 2016-01-01T01:30:55.000+00:00
after:  2016-01-01T01:30:55.000+01:30

我在这里做错了吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

+hh:mm不是时区偏移的正确格式。您应该使用XXX代替documentation

答案 1 :(得分:0)

OffsetDateTime.parse(CharSequence text)的默认DateTimeFormatter是yyyy-MM-dd'T'HH:mm:ss+hh:mm(没有“.SSS”)。

所以我认为你的错误就在那里。

formatter变量作为方法的第二个参数传递,它应该可以正常工作。