0

次の文字列を日付オブジェクトに解析しようとしています: 9/14/2012 9:50:56 PM

次の形式を使用しています。

DateFormat formatter = new SimpleDateFormat("MM/dd/yy HH:mm:ss a");
formatter.setTimeZone(TimeZone.getTimeZone("America/New_York"));

しかし、私は次の日付を取得し続けます: Fri Sep 14 06:50:56 PDT 2012

12時間ずれているようです(時間の変更を考慮した後)。ただし、次の文字列を解析すると: 9/14/2012 1:00:00 AM - 正しい日付オブジェクトが得られます: Thu Sep 13 22:00:00 PDT 2012

私が間違っていることは何ですか?

4

1 に答える 1

1

日付が午前/午後形式の場合は、時間hhではなく、HHを使用する必要があります。リファレンスを参照してください:http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

ここで発生するのは、924時間形式の09時間、つまり午前9として扱われるため、日付が3時間正しく戻されて午前6時になります。2番目の日付の午前1時は01時間で、日付は正しいです。

于 2012-09-14T05:06:57.567 に答える