同じ文字列を System.out しようとしています
System.out.println(" DATE 29 " + new Date(1330462800000l) + " Date 01 "
+ new Date(1330549200000l));
しかし、ビルド(コンソールモードで実行)でチェックすると、Eclipseからアプリケーションを実行すると、結果が異なります。
Eclipseからの出力(正しい結果のようです):
DATE 29 Wed Feb 29 00:00:00 EET 2012 Date 01 Thu Mar 01 00:00:00 EET 2012
ビルドからの出力 (コンソール モード)
DATE 29 Tue Feb 28 23:00:00 EET 2012 Date 01 Wed Feb 29 23:00:00 EET 2012
ばかげた質問で申し訳ありませんが、考えられる理由について何か考えはありますか?
PS:maven + tycho を使用してビルド、パッケージ タイプの eclipse-repository を作成します (本当に問題がある場合)。
編集: Eclipse では、timeZone の値を確認しました:
Calendar calendar=Calendar.getInstance();
System.out.println("!!!time zone before: " + calendar.getTimeZone());
!!!前のタイムゾーン: sun.util.calendar.ZoneInfo[id="Europe/Minsk",offset=7200000,dstSavings=3600000,useDaylight=true,transitions=121,lastRule=java.util.SimpleTimeZone[id=Europe /ミンスク,offset=7200000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=7200000,startTimeMode=1,endMode=2,endMonth= 9,endDay=-1,endDayOfWeek=1,endTime=7200000,endTimeMode=1]]
次に、ハードコードされた zoneId でタイムゾーンを設定し、ビルドを作成しました
calendar.setTimeZone(TimeZone.getTimeZone("Europe/Minsk"));
結果がありません
編集:ビルドとEclipseでjresの異なるバージョンとアーキテクチャを使用しています..それが理由でしょうか? 編集:
System.out.println("!!!!!! system.timezone " + System.getProperty("user.timezone"));
System.setProperty("user.timezone", "Europe/Minsk");
System.out.println("!!!!!! system.timezone " + System.getProperty("user.timezone"));
!!!!!! system.timezone ヨーロッパ/ミンスク
!!!!!! system.timezone Europe/Minsk!!!ゾーン後のカレンダー時間: sun.util.calendar.ZoneInfo[id="Europe/Minsk",offset=7200000,dstSavings=3600000,useDaylight=true,transitions=121,lastRule=java. util.SimpleTimeZone[id=Europe/Minsk,offset=7200000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=7200000,startTimeMode=1 ,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=7200000,endTimeMode=1]]
正しいタイムゾーン。しかし、日付はまだ間違っています