java web中Date时间格式接口中传输、数据库交互问题

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"
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值