Strange date error between Development and Production environment

Duracell De Monaco :

I have a strange date error that I can't solve for days and ask for your help.

I have developed in Java/Spring/Vaadin/Hibernate an app that creates a sport training every day by a user. The problem is that the training date is not displayed correctly in browser. For example, I create now a new training:

training.setTrainingdate(LocalDate.now());

On localhost shows right but online from Amazon AWS Tomcat shows it wrong date (one day before). The MySql database is common for both cases (localhost and aws) the same on an Amazon AWS RDS Mysql DB. My Time zone is UTC +1 (Europe/Vienna)

2020-02-17

but in the browser when I get the trainig from aws is show

2020-02-16

What I've already checked:

- On AWS-RDS-MySQL Server:

SELECT now();

2020-02-17 12:55:50

and

SELECT * FROM `mydatabase`.training;

2020-02-17

- Elastic Beanstalk on SSH:

date

Mon Feb 17 11:55:50 UTC 2020

  • Log files
  • /var/log/tomcat8/catalina.out
  • /var/log/tomcat8/httpd/access_log
  • /var/log/tomcat8/httpd/error_log

2020-02-17 11:55:50.985

No matter what time I try the difference stay one day.

Different devices and different browser same problem.

Do you have an Ideea what can be? Thank you very much!

EDIT:

TimeZone.getDefault())

On Production Server:

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

On localhost:

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]]

Duracell De Monaco :

RESOLVED

Solution:

  • I add a version to maven mysql-connector-java dependency:

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

I add to spring applications.properties:

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

and add/change in the tail of spring.datasource.url to:

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

PS Many thanks to all who try to help! Specially thanks to @Leif Åstrand and @PeMa

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=8602&siteId=1