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"));
    
        }
    }
  • 相关阅读:
    关于求 p_i != i and p_i != i+1 的方案数的思考过程
    poj 3041 Asteroids 二分图最小覆盖点
    poj 1325 Machine Schedule 最小顶点覆盖
    poj 1011 Sticks 减枝搜索
    poj 1469 COURSES 最大匹配
    zoj 1516 Uncle Tom's Inherited Land 最大独立边集合(最大匹配)
    Path Cover (路径覆盖)
    hdu 3530 SubSequence TwoPoint单调队列维护最值
    zoj 1654 Place the Rebots 最大独立集转换成二分图最大独立边(最大匹配)
    poj 1466 Girls and Boys 二分图最大独立子集
  • 原文地址:https://www.cnblogs.com/godtrue/p/6863571.html
Copyright © 2011-2022 走看看