java web中Date时间格式接口中传输、数据库交互问题
问题1:Date传到数据库timestamp,会少13个小时
代码的时间是对的,落到数据库就少了13个小时。这是由于时间格式转换导致的。可以再类型的上面机上注解JsonFormat,这样在保存到数据库时就会自动转变:
/**
* 开始时间
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyyMMddHHmmss", timezone = "GMT+8")
private Date startTime;
或者
在数据库连接加上 serverTimezone=GMT%2b8(//北京时间东八区),使用上海时间不知道有没有问题(serverTimezone=Asia/Shanghai)
jdbc:mysql://127.0.0.0:3306/MY_SYSTEM?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true&serverTimezone=GMT%2b8
问题2:Date格式在接口中传输
比如"2019-07-01 00:00:00"假如直接使用时间,需要传如下所示,比较不直观,不好调试
{
"startTime": 1561910400000
}
修改springboot的application.yml配置文件
spring:
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
则可以直接传输字符串
{
"startTime": "2019-07-01 00:00:00"
}