sql >> データベース >  >> RDS >> Mysql

Play Framework 2.0で本番環境とテストの両方でタイムゾーンをUTCに設定するにはどうすればよいですか?

    これは予想よりも簡単でした。

    まず、application.confで 、パラメータ別の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"))
    

    これらの2つの変更は、両方のテストを一緒に処理します (play test )および開発play start )モード。

    本番の場合 (play dist )、起動する前にプロパティを設定する必要があります。例:

    1. 生成されたstartの編集 export _JAVA_OPTIONS=-Duser.timezone=GMTを追加するスクリプト
    2. startを呼び出す -Duser.timezone=GMTを使用したスクリプト
    3. System.setProperty("user.timezone", "GMT")を呼び出した後、既存のJVM内で起動します



    1. phpとmysqlを使用してcsvファイルを作成する場合のファイルサイズの制限はありますか?

    2. カスタムMySQL列フォーマットを適用する方法

    3. Grails3-Gradleの依存関係Mysqlコネクタ

    4. TSQLの関数パラメータの前に「N」を付ける目的は何ですか?