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.toStringSimpleDateFormatは、それを作成したに入力したタイム ゾーンを使用しません。代わりに、次のことを行う必要があります。

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

これは、フォーマッタで設定した正しいタイム ゾーンを使用する必要があります。toStringシステムのタイムゾーンを使用するだけです。

于 2013-05-06T19:42:58.210 に答える
1

Java の日付オブジェクトは、システムのタイム ゾーンを使用します。お使いのシステムは PDT ではなく CDT タイムゾーンです。したがって、日付はCDTで印刷されています。

于 2013-05-06T19:43:07.137 に答える