SimpleDateFormat parse 失去时区tl;博士详关于 java.time
法典:
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
请注意,格式正确设置为 GMT,但丢失了 GMT 详细信息。我知道我可以使用并解决这个问题,但是这种现象背后的原因是什么?format()
Date
parse()
substring()
这是一个重复的问题,没有任何答案。
编辑:让我以另一种方式提出问题,检索Date对象的方法是什么,以便它始终处于GMT状态?