夏令时问题
在项目开发过程中出现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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】