如何在JDBC中配置正确的时区?

Rih*_*rds 2 java mysql timezone jdbc spring-jdbc

我有这个网址在我的意大利网站上设置连接,但是,当我尝试从网站执行一些插入操作时,日期仍然不正确.(它应该是例如:01:24,但它是02:24)

jdbc.url=jdbc:mysql://sql.example.com/database?autoReconnect=true&characterEncoding=UTF-8&sessionVariables=time_zone='Europe/Rome'
Run Code Online (Sandbox Code Playgroud)

我是否需要添加任何其他参数才能使其正常工作?是否有所有时区的完整列表?

Whi*_*g34 5

对不起,我没有你的直接问题的答案.但是我可以建议一些值得考虑的事情,这样可以完全避免数据库中的所有时区问题.如果可能,我建议只使用BIGINT字段来存储Java日期.您只需存储long自纪元以来的毫秒数,例如来自System.currentTimeMillis()Date.getTime().

然后,总是用Java来管理日期的时区,这很好地使用了基于纪元的数字.它确实使得直接查询数据库以获取Java之外的日期更加复杂,但是它并不太难并且值得IMO:

SELECT FROM_UNIXTIME(date_field / 1000) FROM table;
Run Code Online (Sandbox Code Playgroud)