Java SimpleDataFormat没有检查日期验证?
我有一个RESTAPI,它涉及日期转换。因此,它有一些输入,比如日期字符串及其格式。但我的问题是,我无法验证某些负面场景的日期。比如说Java SimpleDataFormat没有检查日期验证?,java,date-format,Java,Date Format,我有一个RESTAPI,它涉及日期转换。因此,它有一些输入,比如日期字符串及其格式。但我的问题是,我无法验证某些负面场景的日期。比如说 new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("29-09-2014 20:35:27"); 我希望上面的代码会抛出异常,但它不会。所以我的验证失败了。 有人能提出解决方案吗?您需要告诉DateFormat严格解析,而不是宽松地解析默认值: SimpleDateFormat sdf = new Simple
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("29-09-2014 20:35:27");
我希望上面的代码会抛出异常,但它不会。所以我的验证失败了。
有人能提出解决方案吗?您需要告诉DateFormat严格解析,而不是宽松地解析默认值:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setLenient(false);
sdf.parse("29-09-2014 20:35:27"); // Throws ParseException
您需要告诉DateFormat严格解析,而不是宽松地解析默认值:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setLenient(false);
sdf.parse("29-09-2014 20:35:27"); // Throws ParseException
谢谢最有用的是它还可以验证给定的日期,而不是像java.text中的setLenient这样的方法。SimpleDateFormatter@GunjanShah:没有java.text.SimpleDataFormatter这样的类,但setLenient是以DateFormat声明的,SimpleDataFormat是的子类。@Jon Skeet,这是我的误解。我同意你的回答。该方法是在DateFormat类中定义的。非常抱歉,您的评论有误,谢谢。最有用的是它还可以验证给定的日期,而不是像java.text中的setLenient这样的方法。SimpleDateFormatter@GunjanShah:没有java.text.SimpleDataFormatter这样的类,但setLenient是以DateFormat声明的,SimpleDataFormat是的子类。@Jon Skeet,这是我的误解。我同意你的回答。该方法是在DateFormat类中定义的。对于错误的评论,我深表歉意。。