1

我将以下时间戳存储为我想解析的字符串,SimpleDateFormat但我在转换时遇到了一些问题:

我从 xml 文件中读取的时间戳:Tue Dec 31 09:29:08 PDT 2013

我的代码:

String timeStamp = innerNode.getTextContent();   //innerNode is a Node object that contains my TimeStamp from an xml file.
System.out.println(timeStamp);
SimpleDateFormat dateFormat = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy");
dateFormat.setTimeZone(TimeZone.getTimeZone("PDT"));
dateFormat.parse(timeStamp);

Date firstParsedDate = dateFormat.parse(timeStamp);
System.out.println(firstParsedDate);

所以效果很好,但我的结果很奇怪。而不是打印Tue Dec 31 09:29:08 PDT 2013我的结果是: Tue Dec 31 11:29:08 CDT 2013

有什么想法有什么问题吗?谢谢。

4

2 回答 2

2

Date.toString不会使用您为SimpleDateFormat创建它输入的时区。相反,您应该这样做:

System.out.println(dateFormat.format(firstParsedDate));

这应该使用您在格式化程序上设置的正确时区。toString只使用系统时区。

于 2013-05-06T19:42:58.210 回答
1

java中的日期对象将使用系统时区。您的系统位于 CDT 时区,而不是 PDT。所以日期是用 CDT 打印的。

于 2013-05-06T19:43:07.137 回答