对于给定模式yyyy-mm-dd't'hh:mm:ss.sss的字段,我有一个值为2020-03-07t04:11:20.000的json文件。我试着在它的末尾加上一个z,但是它一直没有通过验证。知道为什么吗?
我尝试执行offsetdatetime.parse(mytext,datetimeformatter.ofpattern(mypattern)),但它抛出了datetimeparseexception,无法从temporalaccessor获取offsetdatetime
对于给定模式yyyy-mm-dd't'hh:mm:ss.sss的字段,我有一个值为2020-03-07t04:11:20.000的json文件。我试着在它的末尾加上一个z,但是它一直没有通过验证。知道为什么吗?
我尝试执行offsetdatetime.parse(mytext,datetimeformatter.ofpattern(mypattern)),但它抛出了datetimeparseexception,无法从temporalaccessor获取offsetdatetime
2条答案
按热度按时间mlnl4t2r1#
由于模式和输入都没有时区偏移量,因此无法将其直接解析为
OffsetDateTime
. 你能做的就是把日期解析为LocalDateTime
并将偏移量添加到结果中。例如,使用zoneoffset.utc:
m3eecexj2#
首先,你用错了类,
OffsetDateTime
为了你的案子。既然你提到timezone="UTC"
,您应该使用ZonedDateTime
. 请注意,使用以下注解后,生成的日期和时间如下2020-03-07T04:11:20.000 UTC
.你可以解析成
ZonedDateTime
利用这个模式,yyyy-MM-dd'T'HH:mm:ss.SSS z
.演示:
输出:
如果您想保持日期时间格式为
2020-03-07T04:11:20.000
那你应该把它拿走timezone="UTC"
并将获得的日期时间字符串解析为LocalDateTime
而不是ZonedDateTime
. 不用说,模式应该是yyyy-MM-dd'T'HH:mm:ss.SSS
那样的话。