4

GAE のドキュメントから、運用サーバーのタイムゾーンは常に UTC であることがわかりました。ローカルで開発している間、サーバーのタイムゾーンは CET に設定されます。ローカル開発サーバーも UTC で実行するように強制する方法はありますか?

開発サーバーは Mac OS で実行されています。

ありがとう、

ユーグ

4

3 に答える 3

4

答えを見つけました。サーバーのタイムゾーンを設定するには、Eclipse、「実行構成」、「VM 引数」の順に進み、次の「-Duser.timezone=UTC」を追加します。

これにより、サーバーのタイムゾーンが必要な値 (UTC) に設定されます。開発サーバー (少なくとも私の場合) はローカル タイムゾーンで実行されていましたが、Google App Engine の運用環境では常に UTC が実行されるため、これは非常に便利です。正味の効果は、私が開発者と製品版の間で異なる振る舞いをしたことでした。

ユーグ

于 2012-11-07T13:42:46.983 に答える
2

これを使用して、日付値をデータストアに保存し、特定のタイムゾーンに変換できます。

    DateFormat utcFormat = new SimpleDateFormat(patternString);
    utcFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
    DateFormat indianFormat = new SimpleDateFormat(patternString);
    utcFormat.setTimeZone(TimeZone.getTimeZone("Asia/Kolkata"));
    Date timestamp = utcFormat.parse(inputString);
    String output = indianFormat.format(timestamp);
于 2012-11-07T11:22:58.137 に答える
1

GAE devServer はデフォルトでローカルのタイムゾーンを使用します。

このコードを使用して、UTC に強制します。

boolean isDevEnvironment = SystemProperty.environment.value() == SystemProperty.Environment.Value.Development;

    if (isDevEnvironment) {
        TimeZone.setDefault(DateTimeZone.UTC.toTimeZone());
        DateTimeZone.setDefault(DateTimeZone.UTC);
    }

サーバーの起動時と初期化時に一度だけ実行する必要があります。

于 2013-12-01T19:05:46.943 に答える