【发布时间】:2019-05-18 21:46:29
【问题描述】:
我正在将 intellij 用于 javaee 项目,但我遇到了时间存储问题:我输入的时间与实际存储在 mysql 中的时间之间有 2 小时的偏移。
目前在互联网上的一些搜索没有给出任何结果。
这是我设置 15:30 小时的 java 语句
Bien bien = new Bien(0, "mon super bien #2", 320, 5, 3, true,
520000, "4 impasse des bleuets",
LocalDateTime.of(2019, Month.MAY,1,15,30),
false, bien0.getTypeChauffage(), bien0.getOptions(), bien0.getVille());
你可以在右边的图片中看到存储的时间是13:30!!浪费了 2 个小时。
一些信息:
我住在法国,夏季时间是 UTC+2;所以我把这行放在mysql的my.ini中:
default-time-zone='+02:00'
在 phpmyadmin 中,如果我输入
select now();
我得到了正确的时间。
错误的时间是从 intellij 和 phpmyadmin 得到的。 甚至在更改 mysql 中的默认时区之前就得到了错误的时间。(但是当我更改时区时,先前输入的日期时间被移动了)。 连接字符串很普通,没有任何额外的参数(只有数据库、端口、用户、密码)。
我会继续搜索,但如果有人可以帮助我,那就太好了。
【问题讨论】:
-
为什么不使用
ZonedDateTimeinstea ofLocalDateTime? -
因为它只是一个针对学习的应用程序,我不需要使用全球时间。
-
永远不要使用
LocalDateTime来代表片刻。这已经讨论过很多次了。发帖前搜索 Stack Overflow。 -
准确描述数据库中 5he 列的数据类型。
标签: java mysql java-8 timezone