如何判断现有的java.util.Date是否与特定格式匹配

时间:2013-05-07 14:57:59

标签: java date formatting

我正在传递java.util.Date个实例,需要确保它符合MM/dd/YYYY格式。我怎样才能执行这样的验证(没有Joda Time这样的库)?我检查了SimpleDateFormat的API方法,但没有任何一个明显的赢家。提前谢谢!

4 个答案:

答案 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)));