我有一个奇怪的日期错误,几天之内无法解决,并寻求您的帮助。
我在Java / Spring / Vaadin / Hibernate中开发了一个应用程序,该应用程序每天由用户创建运动训练。 问题是培训日期未在浏览器中正确显示。 例如,我现在创建一个新的培训:
training.setTrainingdate(LocalDate.now());
在localhost上显示正确,但从Amazon在线显示AWS Tomcat显示错误的日期(前一天)。 在两种情况下,MySql数据库是通用的= Amazon RDS Mysql。 我的时区是UTC +1(欧洲/维也纳)
2020-02-17
但是在浏览器中,当我从aws获取训练时显示
2020-02-16
我已检查的内容
-在AWS-RDS-MySQL服务器上:
SELECT now();
2020-02-17 12:55:50
和
SELECT * FROM `mydatabase`.training;
2020-02-17
-SSH上的Elastic Beanstalk:
date
2020年2月17日星期一11:55:50 UTC
2020-02-17 11:55:50.985
无论我什么时候尝试区别停留一天。
不同的设备和不同的浏览器存在相同的问题。
你有一个Idea吗? 非常感谢!
编辑:
TimeZone.getDefault())
在生产服务器上:
sun.util.calendar.ZoneInfo [id =“ Universal”,offset = 0,dstSavings = 0,useDaylight = false,transitions = 0,lastRule = null]
在本地主机上:
sun.util.calendar.ZoneInfo [id =“ Europe / Berlin”,offset = 3600000,dstSavings = 3600000,useDaylight = true,transitions = 143,lastRule = java.util.SimpleTimeZone [id = Europe / Berlin,offset = 3600000,dstSavings = 3600000,useDaylight = true,startYear = 0,startMode = 2,startMonth = 2,startDay = -1,startDayOfWeek = 1,startTime = 3600000,startTimeMode = 2,endMode = 2,endMonth = 9,endDay = -1,endDayOfWeek = 1,endTime = 3600000,endTimeMode = 2]]
答案 0 :(得分:0)
已解决
解决方案:
我向maven mysql-connector-java依赖项添加了一个版本:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
我添加到 spring applications.properties:
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
并将spring.datasource.url的尾部添加/更改为:
?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
PS 非常感谢所有尝试提供帮助的人!特别感谢@LeifÅstrand和@PeMa