我有一些问题。 我有日期的json文件,我希望“2017-05-15T19:30:00 + 01:00”。
我希望使用SimpleDateFormat从服务器验证日期。我用这种格式:“yyyy-MM-dd'T'HH:mm:ssZ”
当我解析预期日期时,所有看起来都很好,但如果我的日期无效,例如“15-05-2017T19:30:00 + 01:00”我也没有解析异常。
我应该使用哪种格式?感谢。
答案 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();
}