Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak ustawić strefę czasową na UTC w Play Framework 2.0 zarówno dla produkcji, jak i testów?

To było łatwiejsze, niż się spodziewaliśmy.

Najpierw w application.conf , skonfiguruj adres URL JDBC z parametrami jak opisano w innym pytaniu 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"

Po drugie, w Build.scala , ustaw właściwość systemową Java i wartość domyślną:

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

Te dwie zmiany razem obsłużą oba test (play test ) i rozwój (play start ).

Do produkcji (play dist ), należy jeszcze ustawić właściwość przed uruchomieniem. Na przykład przez:

  1. Edycja wygenerowanego start skrypt do dodania export _JAVA_OPTIONS=-Duser.timezone=GMT
  2. Wywoływanie start skrypt z -Duser.timezone=GMT
  3. Uruchamianie w istniejącej JVM po wywołaniu System.setProperty("user.timezone", "GMT")



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy istnieje skrypt aktualizacji Spring Batch 3 dla MySQL?

  2. Jak wyświetlić wiersz tabeli mysql jako kolumnę?

  3. Przewodnik po projektowaniu bazy danych dla powiadomień w MySQL

  4. najlepsze wózki na zakupy e-commerce dla programisty Zend Framework

  5. obliczyć różnice między dwoma wierszami w SQL