JDK5(1.5.0_09)で実行した場合の以下のコードは、
Fri May 03 00:00:00 GMT 3912
5/3/12 5:30 AM
JDK6(1.6.0_23)で実行すると、
Fri May 03 00:00:00 IST 3912
5/3/12 12:00 AM
明らかに違いは、使用されるタイムゾーンが原因で、Dateオブジェクトが作成されます。しかし、これはJDKのアップグレード時に既存のコードに問題を引き起こしませんか?この動作はどこかに文書化されていますか、それとも何かが足りませんか?
class TimeTest {
public static void main(String[] args) {
Date d = new Date(2012, 04, 3);
Locale l = new Locale("en", "US","");
DateFormat df= DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, l );
TimeZone t = TimeZone.getTimeZone("Asia/Calcutta");
df.setTimeZone(t);
System.out.println(d);
System.out.println(df.format(d));
}
}