次のことを試したので、タイムゾーンに基づいて日付を取得できます"Africa/Johannesburg"
がGMT+2:00
、Googleサーバーは常に、私の2時間遅れた独自のタイムゾーンを使用して時間を返します。
私はFFをやった:
でappengine-web.xml
設定 しました
<property name="user.timezone" value="Africa/Johannesburg"/>
TimeZone.setDefault(TimeZone.getTimeZone("GMT+2:00"));
Dateオブジェクトを作成する前にも試し ました
私のサーブレットのinitメソッドで、私も試しました
@Override
public void init() throws ServletException {
TimeZone.setDefault(TimeZone.getTimeZone("GMT+2:00"));
}
しかし、これだけではうまくいきません。JDKの日付はスレッドセーフではないため、うまく機能するJodaTimeを使用しています。実際にはnew DateTime(DateTimeZone.forID("Africa/Johannesburg"))
正確な時刻を取得しますが、レガシーの問題のために、日付をJDKの日付に保存する必要があるため、呼び出してJodaをJDKの日付に変換する必要があります。 Date() の場合、時刻は間違ったタイムゾーンで完全に台無しになります。
時間の差を差し引かずにこれを設定する方法を知っている人はいますか。