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

时间:2011-03-23 00:34:59

标签: java mysql jdbc timezone spring-jdbc

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

jdbc.url=jdbc:mysql://sql.example.com/database?autoReconnect=true&characterEncoding=UTF-8&sessionVariables=time_zone='Europe/Rome'

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

2 个答案:

答案 0 :(得分:5)

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

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

SELECT FROM_UNIXTIME(date_field / 1000) FROM table;

答案 1 :(得分:1)

Wikipedia中有一个“tz”时区名称列表。