有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Spring Jaxb2Marshaller日期问题

在将XML响应反序列化为POJO对象(尤其是日期字段)时,我看到了一件奇怪的事情。详情如下:

  • 序列化/反序列化时,日期字段表示为长值。long值应该是自epoch(1970)以来以毫秒为单位的时间
  • 这种情况只发生在旧日期(1970年之前),在旧日期,长值实际上为负值
  • 问题在于,在反序列化过程中,负的long值被解析为带有额外偏移量的日期对象
  • 例如,如果实际值为:
    • -157034120000
    • 也就是说,1920年3月29日00:00:00 GMT+5:30
  • 反序列化的日期对象映射到:
    • -157033800000
    • 也就是说,1920年3月29日00:23:20 GMT+5:30
  • 如您所见,反序列化的日期被关闭了+1400秒
  • 正在使用的封送员是:
    • org.springframework.oxm.jaxb.Jaxb2Marshaller

客户机端是否有一些默认配置使反序列化关闭

我不熟悉JAXB,所以如果您需要任何其他信息,请随时告诉我

谢谢


共 (0) 个答案