【发布时间】:2015-02-03 21:03:48
【问题描述】:
我试图更改 TimeZone 使用 Calendar 类,我发现我应该使用 DateFormat 而不是在 Calendar 对象上设置时区。 现在,我找到了更改时区的解决方法。
但是当我玩日历时,我仍然对输出感到困惑......
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
System.out.println("Time Zone : " + cal.getTimeZone()); // Default Time Zone
System.out.println("Date : " + cal.getTime());
System.out.println("------------Setting Time zone to IST------------");
cal.setTimeZone(TimeZone.getTimeZone("IST")); // Setting Time Zone to IST
System.out.println("Time Zone : " + cal.getTimeZone());
System.out.println("Date : " + cal.getTime());
}
输出:
Time Zone : sun.util.calendar.ZoneInfo[id="America/New_York",offset=-18000000,dstSavings=3600000,useDaylight=true,transitions=235,lastRule=java.util.SimpleTimeZone[id=America/New_York,offset=-18000000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]]
Date : Fri Dec 05 10:45:56 EST 2014
------------Setting Time zone to IST------------
Time Zone : sun.util.calendar.ZoneInfo[id="IST",offset=19800000,dstSavings=0,useDaylight=false,transitions=6,lastRule=null]
Date : Fri Dec 05 10:45:56 EST 2014
这是我的问题,
在我打印 cal.getTimeZone() 时设置时区后,它会将时区更改为 IST(这是理想情况)。但是当我打印 cal.getTime()(它仍然在 EST)时,为什么它不影响日期?
P.S.:我想知道这背后的原因,我对学习如何更改时区不感兴趣!
谢谢!!
【问题讨论】:
标签: java date calendar timezone date-format