最近困扰于java的时区切换。
想要创建默认时区为GMT+1的, 6.30的时间;原代码:
SimpleDateFormat format_HHmm = new SimpleDateFormat(DATE_FORMAT_TYPE_HHmm);String timezone = "GMT+1"; Calendar returnCalendar = new GregorianCalendar(); TimeZone.setDefault(TimeZone.getTimeZone(timezone)); returnCalendar.setTimeZone(TimeZone.getTimeZone(timezone)); returnCalendar.setTime(format_HHmm.parse("0630")); System.out.PRintln(format_HHmm.format(returnCalendar.getTime()));但是这样打印出来的时间并不是“GMT+1”时区的时间。
后来将 format_HHmm 的声明,放在了 TimeZone.setDefault(TimeZone.getTimeZone(timezone)); 这一行的后面,就可以了。
个人猜测,声明SimpleDateFormat类时,会根据TimeZone进行时区设置
新闻热点
疑难解答