java中怎么验证日期格式,要各种日期格式都能验证,代码比较简单的。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中怎么验证日期格式,要各种日期格式都能验证,代码比较简单的。相关的知识,希望对你有一定的参考价值。

参考技术A 用正则表达式,你百度:正则表达式 日期。 参考技术B jquery 很简单。 参考技术C import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class DateTimeCheck


/**
* 验证日期时间格式
* @param args
*/
public static void main(String[] args)

String checkValue = "2008-09-11 14:17:11";
DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
Date d = null;
if(checkValue != null && !checkValue.equals(""))

if(checkValue.split("/").length > 1)

dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

if (checkValue.split("-").length > 1)

dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

else

return;

try

d = dateFormat.parse(checkValue);
System.out.println(d);

catch(Exception e)

System.out.println("格式错误");
return;

String eL= "^((\\d2(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d2(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1-2][0-9]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$";
Pattern p = Pattern.compile(eL);
Matcher m = p.matcher(checkValue);
boolean b = m.matches();
if(b)


System.out.println("格式正确");

else

System.out.println("格式错误");



本回答被提问者和网友采纳

使用SimpleDateFormat验证日期格式

  Java中日期格式的验证有很多方式,这里介绍用 java.text.SimpleDateFormat 来实现时间验证的一种简单方式。首先我们要知道 SimpleDateFormat 对象有一个方法 void setLenient(boolean lenient) ,此方法传入一个Boolean值,表示是否是宽松的验证。当传入false时候表示验证是严格的。利用这一点我们就可以简单实现一个严格的时间格式验证。实现代码如下:

    public static boolean validDateTimeSimple(String dateTime) {
        if(dateTime == null ) {
            return false;
        }
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        df.setLenient(false);//表示严格验证
        
        try {
            df.parse(dateTime);
        } catch (ParseException e) {
            return false;
        }
        return true;
    }

  这种方式其实也是有弊端的,当dateTime字符串中间包含多余的空格的时候这种方式是无法辨别出来的,所以使用的时候需要注意。

以上是关于java中怎么验证日期格式,要各种日期格式都能验证,代码比较简单的。的主要内容,如果未能解决你的问题,请参考以下文章

使用SimpleDateFormat验证日期格式

excel表如何设置指定日期之后不可编辑?

验证日期输入格式

JS中比较2个日期大小验证 日期格式yy-mm-dd

java 用于验证给定字符串中的日期格式的Java Annotation

java导入excel时处理日期格式(已验证ok)