我正在传递java.util.Date
个实例,需要确保它符合MM/dd/YYYY
格式。我怎样才能执行这样的验证(没有Joda Time这样的库)?我检查了SimpleDateFormat
的API方法,但没有任何一个明显的赢家。提前谢谢!
答案 0 :(得分:4)
java.util.Date
本身没有格式 - 只是自1.1.1970 01:00以来毫秒的内部long
表示
答案 1 :(得分:4)
java.util.Date
封装了自纪元以来的毫秒数。它没有格式的概念。因此,Date
的输入验证没有意义 - 这仅适用于String
的{{1}}表示。
答案 2 :(得分:1)
检查一下,它会对你有用,
String s = "2013-05-07";
try {
Date date = new SimpleDateFormat("yyyy/MM/dd").parse(s);
System.out.println(date+" Format of date recognized");
} catch (ParseException e) {
e.printStackTrace();
System.out.println("unable to recognize the date format");
}
这段代码完美无缺,只有格式为yyyy / MM / dd的字符串才能正常工作,所有这些都会引发异常。
答案 3 :(得分:0)
指定日期/时间解析是否宽松。通过宽松的解析,解析器可以使用启发式来解释与该对象的格式不完全匹配的输入。通过严格的解析,输入必须与此对象的格式匹配。
SimpleDateFormat ft = new SimpleDateFormat("MM/dd/YYYY");
ft.setLenient(false); // This will result in a ParseException when an invalid day and/or month
System.out.println(ft.format(ft.parse(s)));