2016-12-29 5 views
0

私のアプリケーションの機能でSimpleDateFormat userDateFormat = new SimpleDateFormat("yyyy-MM-dd 00:00:00")を使用します。はタイムゾーンを設定していません。Java SimpleDateFormatを別のTimeZoneに変更

そして、作成したすべての時間userDateFormat、私はuserDateFormatのタイムゾーン情報を取得するために

System.out.println("userDateFormat timezone: " + ((SimpleDateFormat)userDateFormat).getTimeZone().toString()); 

を使用しています。タイムゾーンはこの単一のサーバーでは、ここで変更された理由

私は
userDateFormat timezone: sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null] 

userDateFormat timezone: sun.util.calendar.ZoneInfo[id="Europe/Copenhagen",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=133,lastRule=java.util.SimpleTimeZone[id=Europe/Copenhagen,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]] 

は不思議:機能の異なるコール(サーバーなしシャットダウン)を実行しているアプリケーションの間に

は、我々は、異なるタイムゾーン情報を取得します。

また、setTimeZoneが 'GMT'(すべてのプロジェクトで一度だけ設定されています)のSimpleDateFormatオブジェクトを持っていますが、その結果からタイムゾーン 'CET(UTC + 1)'が使用されているようです。 jdkタイムゾーンの混乱の原因となるサーバー設定はありますか?

ありがとうございました。

+1

アプリケーションのタイムゾーンは、TimeZone#setDefaultを使用して変更できます。タイムゾーンを明示的に各SimpleDateFormatに設定してから、値を印刷することをお勧めします。 – bsiamionau

答えて

0

bsiamionauによると、デフォルトのタイムゾーンを変更するTimeZone.setDefaultを呼び出すコードがあります。

関連する問題