SimpleDateFormat解析丢失时区信息
- 论坛
- SimpleDateFormat解析丢失时区信息
12 浏览
SimpleDateFormat解析丢失时区信息
代码:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss z"); sdf.setTimeZone(TimeZone.getTimeZone("GMT")); System.out.println(new Date()); try { String d = sdf.format(new Date()); System.out.println(d); System.out.println(sdf.parse(d)); } catch (Exception e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. }
输出结果:
Thu Aug 08 17:26:32 GMT+08:00 2013 2013.08.08 09:26:32 GMT Thu Aug 08 17:26:32 GMT+08:00 2013
注意,format()
方法正确地将Date
格式化为GMT,但parse()
方法丢失了GMT的细节。我知道我可以使用substring()
来解决这个问题,但是这个现象背后的原因是什么?
这里有一个相同的问题,但没有任何答案。
编辑:让我用另一种方式表达问题,有什么方法可以获取一个始终为GMT的Date对象?