Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да настроите часовата зона на UTC в Play Framework 2.0 както за производство, така и за тестове?

Това беше по-лесно, отколкото очаквахме.

Първо, в application.conf , конфигурирайте URL адреса на JDBC с параметрите както е описано в друг въпрос на 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"

Второ, в Build.scala , задайте системното свойство на Java и по подразбиране:

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

Тези две промени заедно ще се справят и с двата теста (play test ) иразработване (play start ) режими.

Запроизводство (play dist ), все пак трябва да зададете свойството преди стартиране. Например от:

  1. Редактиране на генерирания start скрипт за добавяне на export _JAVA_OPTIONS=-Duser.timezone=GMT
  2. Извикване на start скрипт с -Duser.timezone=GMT
  3. Стартиране в рамките на съществуващ JVM след извикване на 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. Актуализиране на редове въз основа на други редове в същата таблица

  2. MySQL:как да разделя текст и число с -

  3. Codeigniter, Join и Case When Query

  4. CONV() функция в снежинка

  5. Какъв тип данни да използвате за полето за хеширана парола и каква дължина?