2017-06-05 10 views
-3

Javaでこの文字列を日付として解析するには 「2017-06-12T14:45:00 + 05:30」 私はSimpleDateFormatを使ってみましたが、例外をスローしています。Java解析文字列「日付2017-06-12T14:45:00 + 05:30」

+0

使用しているJavaのバージョンは? – user1516873

+1

[Java文字列から日付変換](https://stackoverflow.com/questions/4216745/java-string-to-date-conversion)の可能な複製 – jvwilge

+0

[PHPでのISO-8601の日付時刻の解析]の可能な複製(https: //stackoverflow.com/questions/16336643/parsing-iso-8601-datetime-in-java) –

答えて

2

であることは、有効なISOのようです おかげで、日付時刻形式をオフセットので、これはフォーマッタを必要とせずに動作するはずです:

OffsetDateTime date = OffsetDateTime.parse(input); 

をあなたが本当に必要な場合java.util.Dateを入力してください。

Date legacyDate = Date.from(date.toInstant()); 
+0

ありがとう –

1
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX", Locale.ENGLISH); 
Date date = format.parse(string); 

日はあなたのソリューション

+0

いいえ、解読不可能な日付を示しています: "2017-06-12T14:45:00 + 05:30" –

+0

'DateFormat'、' SimpleDateFormat'、 'Date'のような古い古くなったクラスから。現代クラスのlkeの 'OffsetDateTime'はプログラマーにとってははるかに優れています。追加されたボーナスは、明示的なフォーマットのない質問からISO 8601文字列を解析したクラスです。 –

0

SimpleDateForamtの矩形パターン

String startDateString = "09/23/2009"; 
DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); 
Date startDate; 
try { 
    startDate = df.parse(startDateString); 
    String newDateString = df.format(startDate); 
    System.out.println(newDateString); 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 
+0

"2017-06-12T14:45:00 + 05:30" –

+0

新しいSimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ssXXX"、Locale.ENGLISH)のようなパターンを試してみたい; –

関連する問題