TimeZone tz=TimeZone.getTimeZone("America/New_York");
Calendar cl=Calendar.getInstance(tz,Locale.US);
System.out.println(cl.get(Calendar.DAY_OF_MONTH));
这样,Calendar对象就代表了一个美国时区的对象
如果用DateFormat类格式化上面刚创建的对象,时间变为默认时区的时间了,怎么回事呢?
DateFormat df=DateFormat.getDateTimeInstance();
System.out.println(df.format(cl.getTime()))
应该,DateFormat对象,不是单纯的格式化时间的类,它里面也包含了默认的地区和时区。它在格式化某个对象时,会把这个对象所表示的时区和地区变成它自己默认的时区和地区,除非你自己设定了它,例如:
DateFormat df=DateFormat.getDateTimeInstance();
df.setTimeZone(tz);
System.out.println(df.format(cl.getTime()))
这样就可以打印出美国的标准时间