springboot处理时间date,在前后端传输遇到问题,时间插入数据库会提前一天?

2023年7月27日10:09:40

1.问题描述

  • 1.数据库里的日期为date类型,java如何进行接收?
  • 2.前端传过来的时间,后端如何接收?
  • 3.后端如何将时间存入数据库?
  • 4.写入数据库的时间会比传入的时间提前一天?

2.解决方法

2.1两个注解解决接收问题

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date award_date;//这里是你自己的时间类型的字段,在它上面加上这两个注解即可
  • @DateTimeFormat入参注解;格式化接收前端的时间字符串为正确格式
  • @JsonFormat出参注解;格式化从数据库库里面查询出来的时间为正确格式
  • pattern参数可以自由定制。
  • timezone参数用于调整时区

2.2一个参数解决时间提前问题

这只要是由于时区的问题,所以时间上面会提前8小时,自己把它加上去就好了。可以直接在连接数据库的语句后面添加参数serverTimezone=GMT%2B8
我这里加载在末尾,拼接完整的如下所示:

    url: jdbc:mysql://127.0.0.1:3308/stusystem?characterEncoding=utf8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2B8

参数里的GMT%2B8实际上就是GMT+8,只不过在拼接的时候得用%2B才行。

  • 作者:我是lk
  • 原文链接:https://blog.csdn.net/qq_44625080/article/details/107602261
    更新时间:2023年7月27日10:09:40 ,共 628 字。