夏令时问题

在项目开发过程中出现String类型如1867/06/06通过SimpleDateFormate转日期时是CDT时间而不是CST时间,
连接数据库的时区是Asia/Shanghai,存入数据库的时间是1867/06/06,但是后台查sql转成Date类型后还是CDT时间,传到前端就自动变成1867-06-05 23:00:00 少了一小时
解决:
①更改链接数据库的时区 Asia/Shanghai --> GMT+8

url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8

②在SimpleDateFormate中设置时区

 String day = "1867/06/06";
 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/mm/dd");
 simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GME"));
 Date date = simpleDateFormat.parse(day);

③存入数据库
④sql查询转成Date后变成1867-06-06 01:00:00
⑤传到前端,此时时间恢复1867-06-06 00:00:00

posted @   336土豆快跑  阅读(74)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示