我的服务器上有这个:
2017-04-07T11:00:00.000Z
如何将其转换为当地时间?这是我的代码,但我得到的只是一个例外:)
java.lang.IllegalArgumentException:格式无效:" 2017-04-07T11:00:00.000Z"在" Z"
时格式不正确DateTimeFormatter inputFormatter = DateTimeFormat
.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ") //yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ
.withLocale(Locale.US);
DateTime parsed = inputFormatter.parseDateTime(gmtDate);
DateTimeFormatter outputFormatter = DateTimeFormat
.forPattern("HH:mm")
.withLocale(Locale.US)
.withZone(DateTimeZone.getDefault());
return outputFormatter.print(parsed);
答案 0 :(得分:1)
只需将您的模式更改为yyyy-MM-dd'T'HH:mm:ss.SSSZ
,就像这样:
DateTimeFormatter inputFormatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ")
.withLocale(Locale.US);
就我而言,outputFormatter.print(parsed)
的结果是08:00
(我的当地时间,因为我的默认时区为America/Sao_Paulo
)