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;
            }
        }
  • 相关阅读:
    .net core 大文件分片上传
    Python 运算符
    CF1398G Running Competition FFT
    Luogu「StOI-2」简单的树 树链剖分+线段树+倍增
    LOJ#3145. 「APIO2019」桥梁 分块+可撤销并查集
    【UNR #4】序列妙妙值 分块+DP
    LuoguP5008 [yLOI2018] 锦鲤抄 tarjan+贪心
    windows提权
    基于 Laravel 框架的内容管理系统
    趣谈、浅析CRLF和LF
  • 原文地址:https://www.cnblogs.com/lin0/p/13323925.html
Copyright © 2011-2022 走看看