2012-01-24 28 views
2

日付を文字列形式で日付データ型に変換しようとしています。文字列をjava(複合文字列)の日付に変換する

私はSimpleDateFormatterを使用しています。

が、文字列の私の日付は形式に私が変換するには、単純な自衛隊を使用するにはどうすればよい2012-12-24T16:45:00.000+05:30

のですか?

これはJavaで可能ですか?

私のコードはJavaにあります。

+0

[ISO8601準拠の文字列をjava.util.Dateに変換する]の複製が可能です(http://stackoverflow.com/questions/2201925/converting-iso8601-compliant-string-to-java-util-date) – jarnbjo

+0

ISO8601でエンコードされたタイムスタンプにSimpleDateFormatを使用することはできません。リンクされた質問に対する私の回答を別の解決方法で読むことができます。 – jarnbjo

答えて

4

SimpleDateFormat(またはjoda-timeDateTimeFormatter)を使用します。

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); 
Date date = df.parse(str); 

タイムゾーンの部分はJava6のでは動作しません。 Java7ではXXX、joda-timeではZZです。

+0

いいえ、SimpleDateFormatでタイムゾーン(+05:30)を解析することはできません。 – jarnbjo

+0

それはあなたができることを言う - XXXはそれを解析する必要があります。それはJava7で動作します – Bozho

+0

ZZはjoda-timeで動作します – Bozho

2

あなたはよっぽどジョダ時に見てみる必要があります。

http://joda-time.sourceforge.net/

+1

ええ、そこには何がありますか? – Bozho

+0

なぜJodaを見ますか? – jarnbjo

+0

あなたのフォーマットはisoなので、実際にはJodaタイムはルールになります。 'DateTime dt = new DateTime(2012-12-24T16:45:00.000 + 05:30"); ' (私の頭の上から、私はチェックしなかった、ちょうど覚えていた)。 – clankill3r

関連する問題