本文介绍了将毫秒时间戳反序列化为java.time.Instant的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!,我尝试使用Jackson读取一个JSON文件,并将其中一个存储为纪元毫秒的字段存储为JavaInstant
,但是反序列化的行为并不像预期的那样。,以下是我尝试读取时间戳时看到的情况:,Jackson正在将Instant
字段设置为+49601-10-28T16:00:00Z
。,这似乎是因为Jackson的默认设置是使用Instant.ofEpochSecond(Long l)
而不是Instant.ofEpochMilli(Long l)
读取时间戳。,是否可以将JacksonObjectMapper
设置为使用ofEpochMilli
方法?这是我的ObjectMapper
当前拥有的内容:,注意:,如果我将输入JSON更改为ISO日期(如2017-08-19T04:00:00Z
)或纪元秒(如1503115200
),则Instant
字段可以正确设置。,遗憾的是,JSON输入必须是纪元毫秒,例如1503115200000
。,解决方案是将.configure(DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS, false)
添加到对象映射器。完整的ObjectMapper如下所示:,这篇关于将毫秒时间戳反序列化为java.time.Instant的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,