日付を解析しようとしていますが、コードをローカルで実行すると異なる結果が得られます/BST は、パリ/CEST のサーバーと比較します。
次のサンプルで問題を再現しました。これは、オーストラリア グランプリの開始日を解析しようとしています。
TimeZone tz = TimeZone.getTimeZone("AET");
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH mm");
dateFormat.setTimeZone(tz);
long time = dateFormat.parse("28/03/2010 17 00").getTime();
System.out.println("Time "+time);
日付形式でタイムゾーンを正しく設定しているようで、現在のタイムゾーンがコードに影響を与えるべきではありません。しかし、ローカルでは 1269756000000、パリでは 1269759600000 と出力されます。
答え:
エッジケースでテストしていたようです.Linuxサーバーと比較して、私のMacではタイムゾーンの定義が異なります。タイムゾーンを「America/Los_Angeles」に変更すると、一貫した結果が得られます。間違った結果をもたらす Linux ボックスは、古い可能性がある Java 1.6.0-b105 を実行しています。アップグレードしてみます