0

私はJavaで次の文字列を持っています:

2011-12-21T20:27:32-08:00

この文字列を日付に変換して保存する方法を教えてもらえますか?

TimeStampとして宣言されたMySQL列に保存する必要があります。

次のことを試しましたが、機能しません。

Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssz").parse("2011-12-21T20:27:32-08:00");

以下のエラーが発生します。

Exception in thread "main" java.text.ParseException: Unparseable date: "2011-12-21T20:27:32-08:00" –

どんな助けでも大歓迎です。

4

2 に答える 2

3

documentationによると、zは、文字列内のタイムゾーン インジケーターとは異なる形式のタイムゾーン インジケーターを想定していますがX、それらをサポートする代わりに使用できます。したがって(変更はフォーマット文字列の最後にあります):

Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX").parse("2011-12-21T20:27:32-08:00");

ドキュメントから:

レターの日付または時刻コンポーネントの表示例
------ -------------------------------------- ------------------- -- -----------------------------------
z タイム ゾーン 一般的なタイム ゾーン 太平洋標準時。PST; GMT-08:00
Z タイムゾーン RFC 822 タイムゾーン -0800
X タイム ゾーン ISO 8601 タイム ゾーン -08; -0800; -08:00

ダニエル・カプランXは、新しいと思われるコメントを指摘しています。環境によっては、文字列を少し前処理してコロンを削除し、代わりに (上のリストの 2 番目の ;Zではなく大文字)を使用する必要がある場合があります。z

于 2013-01-09T01:59:47.967 に答える
0

この質問を見る必要があります: Java SimpleDateFormat for time zone with a Colon seperator? . 最初の回答が役立つ場合があります。

于 2013-01-09T03:08:34.787 に答える