@JsonFormat 时区不对

ゝ一纸荒年。 2022-04-14 01:54 543阅读 0赞

使用@JsonFormat 可以很方便的将一个对象的某些属性查出来返回给页面。

例如

  1. /**
  2. * 放款日期
  3. */
  4. @JacksonXmlProperty(localName = "LOAN_ACTV_DT")
  5. @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
  6. private Date loanActvDt;

这样一来 我们就能得到一个以年月日格式化后的时间展示出来。

不过@JsonFormat 默认的时区是Greenwich Time, 默认的是格林威治时间,而我们是在东八区上,所以时间会比实际我们想得到的时间少八个小时,经常因为这八个小时导致时间 实际上是 十二月十二日,格式化后显示出来的却是十一日。

打开注解源码,发现有一个属性

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoZW5oYW9fY19o_size_16_color_FFFFFF_t_70

所以 我们只需要在注释里写上时区就可以了。

  1. /**
  2. * 放款日期
  3. */
  4. @JacksonXmlProperty(localName = "LOAN_ACTV_DT")
  5. @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
  6. private Date loanActvDt;

这样一来时区问题就解决了。同理,可以支持任何时区。只需要修改timezone即可。

发表评论

表情:
评论列表 (有 0 条评论,543人围观)

还没有评论,来说两句吧...

相关阅读