Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何判断现有java.util.Date是否与特定格式匹配_Java_Date_Formatting - Fatal编程技术网

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

如何判断现有java.util.Date是否与特定格式匹配,java,date,formatting,Java,Date,Formatting,正在向我传递一个java.util.Date实例,需要确保它符合MM/dd/YYYY格式。如何执行这种验证(像Joda Time这样的SAN库)?我检查了SimpleDateFormat的API方法,但没有发现明显的赢家。提前谢谢 java.util.Date本身没有格式,只是一个内部长表示自1970年1月1日01:00以来的毫秒数java.util.Date封装了自纪元以来的毫秒数。它没有格式的概念。因此,日期的输入验证没有意义-这只适用于日期的字符串表示形式指定日期/时间解析是否宽松。通过宽

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

java.util.Date本身没有格式,只是一个内部
表示自1970年1月1日01:00以来的毫秒数
java.util.Date
封装了自纪元以来的毫秒数。它没有格式的概念。因此,
日期
的输入验证没有意义-这只适用于
日期
字符串
表示形式

指定日期/时间解析是否宽松。通过宽松的解析,解析器可以使用启发式来解释与该对象格式不完全匹配的输入。通过严格解析,输入必须与此对象的格式匹配

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

看看这个,它会对你有用的

    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格式的字符串可以工作,rest all会抛出异常。

如果我是你,我会使用
java.util.Calendar
java.util.Date
从JDK版本1.1开始就被弃用。@Abaab
java.util.Date
一点也不弃用,有些方法/构造函数是不推荐的,但类本身并没有被许多API/框架弃用。@Abaab
Date
本身并没有被弃用。由于
日历
,大多数方法都是,但类本身不是。