0
在下面的代码当与JDK5运行返回不同的日期(1.5.0_09)打印java.util.Date在JDK 5和JDK 6
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));
}
}
当您通过调用* deprecated *构造函数开始时,您不应该对关于不一致结果的SO报警。是的,它会导致问题,这就是它被弃用的原因。 –
使用不推荐的方法本身并不是真正的理解Java版本之间不同行为的好方法。在这种情况下,Date构造函数在两种情况下都完全相同,不同之处在于不推荐使用的TimeZone.getTimeZone方法。 – jarnbjo