开发和生产环境之间的奇怪日期错误



我有一个奇怪的日期错误,好几天都解决不了,请你帮忙。

我用Java/Spring/Vadin/Hibernate开发了一个应用程序,可以由用户每天创建运动训练。问题是培训日期没有在浏览器中正确显示。例如,我现在创建了一个新的培训:

training.setTrainingdate(LocalDate.now());

在localhost上显示正确,但在亚马逊的在线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上的弹性Beanstalk:

date

2月17日星期一11:55:50 UTC 2020

  • 日志文件
  • /var/log/tomcat8/catalina.out
  • /var/log/tomcat8/httpd/access_log
  • /var/log/tomcat8/httpd/error_log

2020-02-17 11:55:50.985

无论我什么时候尝试,差异都会持续一天。

不同的设备和不同的浏览器有相同的问题。

你有一个Ideea可以是什么?非常感谢!

编辑:

TimeZone.getDefault())

在生产服务器上:

sun.util.calender.ZoneInfo[id="Universal",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]

在localhost:上

sun.util.calender.ZoneInfo[id="欧洲/柏林",偏移量=36000,dstSavings=36000,useDaylight=true,transitions=143,lastRule=java.util.SimpleTimeZone[id=欧洲/柏林,偏移量=36000,dstSavings=36000,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=360000,endTimeMode=2]]

已解决

解决方案:

  • 我添加了一个版本到maven mysql连接器java依赖:

    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.48</version>
    </dependency>
    

我添加到弹簧应用程序。属性:

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

并将spring.datasource.url的尾部添加/更改为:

?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false

PS非常感谢所有试图提供帮助的人!特别感谢@LeifÅstrand和@PeMa

相关内容

  • 没有找到相关文章

最新更新