sql >> Database teknologi >  >> RDS >> Mysql

Hvordan indstilles tidszonen til UTC i Play Framework 2.0 til både produktion og test?

Det var nemmere, end vi havde forventet.

Først i application.conf , konfigurer JDBC URL'en med parametrene som beskrevet i et andet StackOverflow-spørgsmål :

# Set MySQL Connector/J to use UTC server connection and time conversions
#   see https://stackoverflow.com/questions/10488529/gettimestamp-does-timezone-converstion-twice-in-mysql-jdbc-connector
db.default.url="jdbc:mysql://localhost/database?useGmtMillisForDatetimes=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&useTimezone=true&serverTimezone=UTC"

For det andet i Build.scala , indstil Java-systemegenskaben og standarden:

// Setting this property here forces the JVM to run in UTC time, 
// both for test (`play test`) and development (`play start`) modes, 
// but not for production (`play dist`).
System.setProperty("user.timezone", "GMT")
TimeZone.setDefault(TimeZone.getTimeZone("GMT"))

Disse to ændringer vil sammen håndtere begge test (play test ) og udvikling (play start ) tilstande.

Til produktion (play dist ), skal man stadig indstille egenskaben før lancering. For eksempel af:

  1. Redigering af den genererede start script for at tilføje export _JAVA_OPTIONS=-Duser.timezone=GMT
  2. Ankaldelse af start script med -Duser.timezone=GMT
  3. Lancering i en eksisterende JVM efter opkald til System.setProperty("user.timezone", "GMT")



  1. auto_increment efter gruppe

  2. mysql SELECT * WHERE værdi =$row['item']

  3. Opret en sammenkædet server mellem to Docker-containere, der kører SQL Server (T-SQL-eksempel)

  4. Har PL/SQL en tilsvarende StringTokenizer til Java?