sql >> Databáze >  >> RDS >> Mysql

Jak nastavit časové pásmo na UTC v Play Framework 2.0 pro produkci i testy?

Bylo to jednodušší, než jsme čekali.

Nejprve v application.conf , nakonfigurujte adresu URL JDBC s parametry jak je popsáno u jiné otázky StackOverflow :

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

Za druhé, v Build.scala , nastavte vlastnost systému Java a výchozí:

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

Tyto dvě změny společně zvládnou oba test (play test ) a vývoj (play start ) režimy.

Pro výrobu (play dist ), před spuštěním je stále nutné nastavit vlastnost. Například podle:

  1. Úprava vygenerovaného start skript pro přidání export _JAVA_OPTIONS=-Duser.timezone=GMT
  2. Vyvolání start skript s -Duser.timezone=GMT
  3. Spuštění v rámci existujícího JVM po volání System.setProperty("user.timezone", "GMT")



  1. Třídicí sloupec řetězce obsahující čísla v SQL?

  2. Zkontrolujte, která ID ze sady v tabulce neexistují

  3. Jaký je nejjednodušší způsob, jak získat všechny rodiče záznamu pomocí modelu id / parent_id v mysql/php?

  4. Jak přidat vypočítaný sloupec do tabulky serveru SQL - SQL Server / Výukový program T-SQL, část 47