sql >> Database >  >> RDS >> Mysql

Hoe stel ik de tijdzone in op UTC in Play Framework 2.0 voor zowel productie als tests?

Dit was makkelijker dan we hadden verwacht.

Eerst in application.conf , configureer de JDBC-URL met de parameters zoals beschreven op een andere StackOverflow-vraag :

# 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"

Ten tweede, in Build.scala , stel de Java-systeemeigenschap en de standaardwaarde in:

// 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"))

Deze twee wijzigingen samen verwerken beide test (play test ) en ontwikkeling (play start ) modi.

Voor productie (play dist ), moet men de eigenschap nog steeds instellen voor de lancering. Bijvoorbeeld door:

  1. De gegenereerde start bewerken script om export _JAVA_OPTIONS=-Duser.timezone=GMT toe te voegen
  2. De start oproepen script met -Duser.timezone=GMT
  3. Lancering binnen een bestaande JVM na het aanroepen van System.setProperty("user.timezone", "GMT")



  1. Hoe verhoog ik de snelheid van deze data-analyse?

  2. 2 manieren om de Juliaanse dag terug te geven in SQLite

  3. Hoe rijen in een SQL Server-resultatenset te beperken

  4. Moeten de primaire sleutels van de database gehele getallen zijn?