Java如何检查字符串是否为有效日期?

以下代码可用于验证字符串是否包含有效的日期信息。日期的模式由java.text.SimpleDateFormat对象定义。当日期无效时,java.text.ParseException将抛出。

package org.nhooo.example.text;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;

public class DateValidation {
    public static void main(String[] args) {
        DateFormat format = new SimpleDateFormat("dd/MM/yyyy");

        // 要解析的输入应严格遵循定义的日期格式
        // 以上。
        format.setLenient(false);

        String date = "29/18/2017";
        try {
            format.parse(date);
        } catch (ParseException e) {
            System.out.println("Date " + date + " is not valid according to " +
                ((SimpleDateFormat) format).toPattern() + " pattern.");
        }
    }
}

上面的日期验证代码的结果是:

Date 29/18/2017 is not valid according to dd/MM/yyyy pattern.