zoukankan      html  css  js  c++  java
  • 判断日期字符串是否是对应格式的日期字符串

     1:工具类——本例的核心,其中有两点注意的地方,一是使用了严格转换方式,二是将转换成的日期又转换成字符串和原字符串进行了二次比较

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * @date 2017-05-10 上午 09:08:00
     * @since: JDK 1.7
     * @Version:  V1.0
     */
    public class DateUtil {
    
        /**
         * 声明一个日志记录器
         */
        private static final Logger LOGGER = LoggerFactory.getLogger(DateUtil.class);
    
        /**
         * 判断是否是对应的格式的日期字符串
         * @param dateStr
         * @param datePattern
         * @return
         */
        public static boolean isRightDateStr(String dateStr,String datePattern){
            DateFormat dateFormat  = new SimpleDateFormat(datePattern);
            try {
                //采用严格的解析方式,防止类似 “2017-05-35” 类型的字符串通过
                dateFormat.setLenient(false);
                dateFormat.parse(dateStr);
                Date date = (Date)dateFormat.parse(dateStr);
                //重复比对一下,防止类似 “2017-5-15” 类型的字符串通过
                String newDateStr = dateFormat.format(date);
                if(dateStr.equals(newDateStr)){
                    return true;
                }else {
                    LOGGER.error("字符串dateStr:{}, 不是严格的 datePattern:{} 格式的字符串",dateStr,datePattern);
                    return false;
                }
            } catch (ParseException e) {
                LOGGER.error("字符串dateStr:{},不能按照 datePattern:{} 样式转换",dateStr,datePattern);
                return false;
            }
        }
    }

     2:简单的测试类

    public class TestMain {
        public static void main(String[]args){
            System.out.println(DateUtil.isRightDateStr("2017-05-15","yyyy-MM-dd"));
            System.out.println(DateUtil.isRightDateStr("2017-5-15","yyyy-MM-dd"));
            System.out.println(DateUtil.isRightDateStr("2017-01-88","yyyy-MM-dd"));
            System.out.println(DateUtil.isRightDateStr("2017-21-88","yyyy-MM-dd"));
    
            System.out.println(DateUtil.isRightDateStr("21:88","HH:mm"));
            System.out.println(DateUtil.isRightDateStr("01:10","HH:mm"));
            System.out.println(DateUtil.isRightDateStr("25:00","HH:mm"));
    
        }
    }
  • 相关阅读:
    树莓派4 (1)一键配置
    Android编码学习之Fragment
    android编码学习
    自动化中app支持schema跳转
    jenkins持续集成
    测试环境运维文章集锦
    HTML5 data-* 自定义属性
    了解一下JavaScript的未来——ECMAScript5
    ECMAScript5的其它新特性
    ECMAScript5 Array新增方法
  • 原文地址:https://www.cnblogs.com/godtrue/p/6863571.html
Copyright © 2011-2022 走看看