判断日期字符串是否是对应格式的日期字符串详解编程语言

 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")); 
 
    } 
}

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/16615.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论