Java中的有效日期格式检查

时间:2018-01-14 04:17:25

标签: java simpledateformat

当我执行以下代码时,我得到了一个真实的'即使我提供的日期不正确(2010-55-04)。有人可以澄清为什么会这样。

package basic;

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

public class VerifyIfStrngIsValidDate {

    public static boolean checkdate(String dt1)
    {
        SimpleDateFormat df1=new SimpleDateFormat("yyyy-mm-dd");
        System.out.println(df1.toPattern());
        df1.setLenient(false);
        try {
            df1.parse(dt1);
        } catch (ParseException e) {

            return false;
        }
        return true;
    }

    public static void main(String[] args) {

        boolean res;
        res=checkdate("2010-55-04");
        System.out.println(res);
    }

}

2 个答案:

答案 0 :(得分:2)

您使用错误的格式掩码表示年月日期。使用M数月,而不是m,即分钟:

SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");

您将看到以下演示现在在进行此更改后失败。

http://nginx.org/r/include

答案 1 :(得分:0)

请注意,根据documentation,您设置的掩码不正确。

y is yearm is minutesd is day of the month。因此,55有效。您应该将mm更改为MM以解决此问题。

SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");