springboot后端时间到前端,相差8小时,时间格式不对

Posted 未月廿三

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot后端时间到前端,相差8小时,时间格式不对相关的知识,希望对你有一定的参考价值。

spring boot后台时间正确,返回给前台的时间不正确,和后台差8个小时

{
    "code": 1,
    "msg": "SUCCESS",
    "result": {
        "extractRecords": null,
        "chargeRecords": [
            {
                "id": 4,
                "account": "1604516",
                "deposit_paid": 500,
                "deposit_paid_time": "2019-05-30T03:01:03.000+0000"
            }
        ]
    }
}

原因是:

spring-boot中对于@RestController或者@Controller+@ResponseBody注解的接口方法的返回值默认是Json格式,

所以当对于date类型的数据,在返回浏览器端是会被spring-boot默认的Jackson框架转换,而Jackson框架默认的时区GMT(相对于中国是少了8小时)。

处理方式:

在application.yml添加配置

spring:
  jackson:
    #日期格式化
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

再次访问的数据:

{
    "code": 1,
    "msg": "SUCCESS",
    "result": {
        "extractRecords": null,
        "chargeRecords": [
            {
                "id": 4,
                "account": "1604516",
                "deposit_paid": 500,
                "deposit_paid_time": "2019-05-30 11:01:03"
            }
        ]
    }
}

jackson的全部配置:

spring:
  jackson:
    #日期格式化
    date-format: yyyy-MM-dd HH:mm:ss
    serialization:
       #格式化输出 
      indent_output: true
      #忽略无法转换的对象
      fail_on_empty_beans: false
    #设置空如何序列化
    defaultPropertyInclusion: NON_EMPTY
    deserialization:
      #允许对象忽略json中不存在的属性
      fail_on_unknown_properties: false
    parser:
      #允许出现特殊字符和转义符
      allow_unquoted_control_chars: true
      #允许出现单引号
      allow_single_quotes: true

以上是关于springboot后端时间到前端,相差8小时,时间格式不对的主要内容,如果未能解决你的问题,请参考以下文章

在MongoVUE中发现插入的时间和实际的时间相差8小时?

2020-06-30 关于element-ui中el-date-picker组件时间落后8个小时的问题

GMT时间跟中国时间相差多少

logstash 7.x 中时间问题,@timestamp 与本地时间相差 8个小时

logstash 7.x 中时间问题,@timestamp 与本地时间相差 8个小时

nodejs从MySQL数据中获取的时间,展示时与存储时间相差8小时的解决方法