zoukankan      html  css  js  c++  java
  • java实现判断时间是否为合法时间

      最近遇到一个需求,输入字符串,判断为日期的话再进行后面的比较大小之类的操作,但是合法日期的格式也是比较多的,利用正则表达式又太长了。所以后面利用的方法就是,先把输入的字符串转成一种固定的时间格式,然后利用java转String为Date的方法,看程序是否抛出异常来判断日期是否合法,需要注意的是需要将验证设置为严格的,也就是lenient设置为false,默认为true,不然的会出现例如2019-03-1223为正确的日期类型,主要是直接把1223换算成年月日加上去了。

      下面代码实现:

     /**
         * @author Carol
         * @date 2020年7月14日18:11:16
         * 验证字符串是否为合法日期 支持2019-03-12 2019/03/12 2019.03.12   HH:mm:ss HH:mm常用格式
         * @param date
         * @return
         */
        public static boolean verifyDateLegal(String date) {
            if ((date.contains("-") && date.contains("/"))
                    || (date.contains("-") && date.contains("."))
                    || (date.contains("/") && date.contains("."))){
                return false;
            }
            date.trim();
            StringBuilder timeSb = new StringBuilder();
            date = date.replaceAll("[\.]|[//]", "-");
            String[] time = date.split(" ");
            timeSb.append(time[0]);
            timeSb.append(" ");
            if (time.length > 1) {
                timeSb.append(time[1]);
            }
            int i = time.length > 1 ? time[1].length() : 0;
            for ( ; i < 8 ; i ++) {
                if (i == 2 || i == 5){
                    timeSb.append(":");
                } else {
                    timeSb.append("0");
                }
            }
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            try {
                sdf.setLenient(false);
                sdf.parse(timeSb.toString());
                return true;
            } catch (ParseException e) {
                return false;
            }
        }
  • 相关阅读:
    Python 之nmap模块问题解决
    phpstudy --mysql支持外联。
    Kali 更新
    Win 10 访问IPV6地址 问题。
    Macbookpro 使用Parallels Deskop安装kali Parallels Tools
    Windows 转 Mac 利用git继续管理github
    shell脚本移植问题(windwos移植到linux)
    APP测试项总结
    apktool 反编译
    微信小程序-服务器返回数据中包含有 换行符失效问题解决方案
  • 原文地址:https://www.cnblogs.com/lin0/p/13323925.html
Copyright © 2011-2022 走看看