关于Java中时区切换

最近困扰于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进行时区设置


版权声明:本文为HuskySONG原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。