使用 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));
}
}