日付と時刻の列と次のようなタイムゾーンを持つ Access データベースがあります。
まず、TimeZone オブジェクトと SimpleDateFormat オブジェクトを次のように作成します。
TimeZone timeZone = TimeZone.getTimeZone(parseNull(rs.getString("TimeZone")));
DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormatter.setTimeZone(timeZone);
次に、次のように日付を読み込んでいます。
String startDateString = rs.getDate("Start_Date") + " " + rs.getString("Start_Time").substring(11);
startDate = dateFormatter.parse(startDateString);
ただし、次のように日付を印刷すると:
System.out.println("Start Actual: " + rs.getDate("Start_Date") + " " + rs.getString("Start_Time").substring(11));
System.out.println("Start Formatted: " + startDate);
次の出力が得られます。
Start Actual: 2011-11-10 18:00:00
Start Formatted: Thu Nov 10 02:00:00 EST 2011
わかった....なぜ?これは非常に紛らわしいと思います。Date オブジェクトがオーストラリア/シドニーのタイム ゾーンで正しく表示されないのはなぜですか? アプリケーションで日付を正しく設定できるようにするにはどうすればよいでしょうか?
助けてくれてありがとう!