• springboot框架返回日期值少一天


    1 问题

      一个请求,返回一个对象,对象里面有日期,返回的对象的日期却比实际的日期少了一天

      如下图:在return返回的时候查看返回的对象的日期的值

      

       postman返回的结果如下图,几个日期都少了一天

     

    2 产生原因


    spring-boot默认使用Jackson对返回到前端的值进行序列化。Jackson框架默认的时区是UTC(协调世界时,又称统一世界时间),相比于东八区少了8小时(东+西-)。hh:12小时制,HH:24小时制。

    3 解决方案


    1) 使用@JsonFormat注解(推荐)

    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd hh:mm:ss")
    private Date begindate;

    2) 在application.yml中使用如下配置

    spring:
    jackson:
    date-format: yyyy-MM-dd hh:mm:ss
    time-zone: GMT+8

    或者在 bootstrap.properties 中配置

    3) 数据库链接db添加参数 

    serverTimezone=Asia/Shanghai

      注解虽然相对于配置文件比较麻烦,要写很多次,不过可以针对不同的字段的不同需求,进行单独配置

  • 相关阅读:
    JVM StackOverflowError vs. OutOfMemoryError
    db2 command line notes
    my emacs configuration
    repackage android application
    file -i haha.csv
    QualType in clang
    STM in Clojure
    32bit / 64bit co-exist Linux, ld-linux.so, linux-gate.so.1 etc
    hash tree
    K-S Test
  • 原文地址:https://www.cnblogs.com/jthr/p/16405552.html
Copyright © 2020-2023  润新知