0

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

4

4 回答 4

4

java.util.Date本身没有格式 - 只是long自 1.1.1970 01:00 以来毫秒的内部表示

于 2013-05-07T15:02:12.337 回答
4

java.util.Date封装自纪元以来的毫秒数。它没有格式的概念。因此,输入验证Date没有任何意义——这只适用StringDate.

于 2013-05-07T15:02:26.537 回答
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 的字符串可以正常工作,其余的都会抛出异常。

于 2013-05-07T17:57:25.807 回答
0

Specify whether or not date/time parsing is to be lenient. With lenient parsing, the parser may use heuristics to interpret inputs that do not precisely match this object's format. With strict parsing, inputs must match this object's format.

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))); 
于 2013-05-07T15:05:53.873 回答