2017-05-15 6 views
0

問題があります。 日付が「2017-05-15T19:30:00 + 01:00」と期待されるjsonファイルがあります。jsonの日付フィールドを検証できません

SimpleDateFormatを使用してサーバーから日付を検証します。 "yyyy-MM-dd'T'HH:mm:ssZ"

予想される日付を解析すると、すべて表示がうまくいくように見えますが、無効な日付(たとえば、「15-05-2017T19: 30:00 + 01:00「解析例外はありません。

どのような形式を使用する必要がありますか?ありがとう。

答えて

0

SimpleDateFormat Date parse(String text, ParsePosition pos)を使用していることを前提としています。 documentationによると:

戻り値は次のとおりです。

文字列から解析日付。エラーの場合はnullを返します。

したがって、例外はあなたのケースではなく、nullの日付オブジェクトです。

編集:

私はちょうどこのanswerにつまずきました。それは、構文解析を厳密にしたい場合はsetLenient(false)を使うべきだと言います。例えば

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); 
    sdf.setLenient(false); 

    try { 
     date = sdf.parse("15-05-2017T19:30:00+01:00"); 
     System.out.println("Rigorous date (won't be printed!): "+date); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
+0

第2のケースでは、私が間違った日付を取得します。 –

+0

間違った日付? –

+0

たとえば、11月7日17:00:00 GMT + 03:00 21 –

関連する問題