2016-09-07 6 views
2

のための解析例外がスローされます。のSimpleDateFormatは私が日付形式で日付の2セットをしようとしています0100

DateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss"); 

それは日のために正常に動作します:金、2016年8月26日13時55分34秒0000

日付ではありません:火曜日、06年9月6日11時57分14秒+0100

+0100日付の例外はありません。

Unparseable date: "Tue, 06 Sep 2016 11:57:14 +0100" (at offset 0) 
at java.text.DateFormat.parse(DateFormat.java:555) 
+0

、 Locale.ENGLISH);まだ同じエラーを投げる –

答えて

4

それは問題がタイムゾーンではなく、文字で日に関連していないことを意味し、offset 0で失敗します。

SimpleDateFormatLocaleを設定する必要があります。

DateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss", Locale.ENGLISH); 
    Date d1 = format.parse("Fri, 26 Aug 2016 13:55:34 +0000"); 
    Date d2 = format.parse("Tue, 06 Sep 2016 11:57:14 +0100"); 

問題なく動作します。あなたはまた、タイムゾーンを取得する必要がある場合は

、また、あなたのパターンにzを追加する必要があります:新しいのSimpleDateFormat( ":MM:EEE、MMMのYYYYのHH ddはSS zを" SimpleDateFormatのフォーマット1 =

DateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH); 
+1

私はあなたのロケールポイントを盗んでしまったので、私の良心をクリアする必要があります。 – Bathsheba

+0

SimpleDateFormat format1 =新しいSimpleDateFormat( "EEE、dd MMM yyyy HH:mm:ss z"、Locale.ENGLISH); まだ動作しません。 –

+0

私の答えのコードは私のために働いた! – YMomb

3

あなたが

new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z"); 

注タイムゾーンのzを必要としています。

zが供給されない場合、パーサーはゼロ(+0000)ケースを無視

はなく非ゼロ(+0100)場合lenientプロパティはこの動作を制御します(肯定応答@Marko Topolnik)。

英語の週名を使用しているので、2つの引数のコンストラクタをSimpleDateFormatに使用し、2番目のパラメータとしてLocale.ENGLISHを渡す必要があります。

+0

それでも同じエラーが発生します。私はアンドロイドでこれを試しています –

+0

SimpleDateFormat format1 =新しいSimpleDateFormat( "EEE、dd MMM yyyy HH:mm:ss z"、Locale.ENGLISH); まだ運がありません –

関連する問題