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

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

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

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

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

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

 SELECT FROM_UNIXTIME(date_field / 1000) FROM table; 

维基百科中有一个“tz”时区名称列表。