无法在json中验证日期字段

时间:2017-05-15 15:25:44

标签: android json

我有一些问题。 我有日期的json文件,我希望“2017-05-15T19:30:00 + 01:00”。

我希望使用SimpleDateFormat从服务器验证日期。我用这种格式:“yyyy-MM-dd'T'HH:mm:ssZ”

当我解析预期日期时,所有看起来都很好,但如果我的日期无效,例如“15-05-2017T19:30:00 + 01:00”我也没有解析异常。

我应该使用哪种格式?感谢。

1 个答案:

答案 0 :(得分:0)

我假设您使用的是SimpleDateFormat Date parse(String text, ParsePosition pos)。根据{{​​3}}:

返回值为:

  

从字符串解析的日期。如果出现错误,则返回null。

因此,您的案例不会出现异常,而是一个空日期对象。

修改

我偶然发现了documentation。它说如果你想要解析严谨,你应该使用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();
    }