首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

SimpleDateFormat解析的时区有关问题

2012-08-29 
SimpleDateFormat解析的时区问题为了解析“2011-12-07 15:33:17.372 CST”这个字符串?import java.text.Pars

SimpleDateFormat解析的时区问题

为了解析“2011-12-07 15:33:17.372 CST”这个字符串

?

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;import java.util.Calendar;public class Test{        public static void main(String[] args) throws ParseException{                    System.out.println(Calendar.getInstance().getTimeZone());                System.out.println(Locale.getDefault());                System.out.println("Today is :" + new Date());                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S z");                System.out.println("2011-12-07 15:33:17.372 CST被解析成了" + dateFormat.parse("2011-12-07 15:33:17.372 CST"));                System.out.println("2011-12-07 15:33:17.372 HKT被解析成了" + dateFormat.parse("2011-12-07 15:33:17.372 HKT"));        }}
?

本地服务器A是香港时区(HKT),另一台服务器B是上海时区(CST),从B发给A的时间字符串为“2011-12-07 15:33:17.372 CST”,结果在A中被解析成了“Thu Dec 08 05:33:17 HKT 2011”

?

原因是因为SimpleDateFormat在解析这个字符串时,将CST当做了美国中部时区,属于西6区,而香港和北京时区都是东8区,两者相差14个小时,于是就有了上面那个问题

?

这可以通过将B服务器的时区修改为香港时区(HKT)来解决,在linux下面的命令是tzselect

热点排行