一行代码判断字符串是否为某格式的时间

在开发中遇到需要判断某个字符串是否为某种格式(如yyyyMMddyyyy-MM-dd等)的时间的需求,没有找到已有的一键解决的api,所以自己写了一个

方法本体:

注:方法中的ObjectUtilDateUtil均为hutool中的包

    /**
     * 判断字符串是否为指定格式的日期时间
     *
     * @param dateStr    需要检查的日期字符串
     * @param dateFormat 指定的日期格式,例如:"yyyyMMdd", "yyyy-MM-dd", "yyyy/MM/dd" 等
     * @return 如果字符串是指定格式的日期时间,返回 true;否则返回 false。
     */

    public static boolean isValidDateFormat(String dateStr, String dateFormat) {
        if (ObjectUtil.isEmpty(dateStr)) {
            return false;
        }
        try {
            DateUtil.parse(dateStr, dateFormat); // 将字符串解析为日期对象,如果解析成功,则说明字符串是有效的日期格式;否则说明字符串不是有效的日期格式。
            return true;
        } catch (Exception e) {
            return false;
        }
    }

测试:

    /**
     * 测试isValidDateFormat方法
     * @param args
     */
    public static void main(String[] args) {

        String dateStr = "2021-03-44"; // 需要检查的日期字符串
        String dateFormat = "yyyy-MM-dd"; // 指定的日期格式
        boolean isValidDate = isValidDateFormat(dateStr, dateFormat);
        System.out.println("字符串 " + dateStr + " 是否为格式为 '" + dateFormat + "' 的时间:" + isValidDate);
    }

结果:

字符串 2021-03-01 是否为格式为 'yyyy-MM-dd' 的时间:true
字符串 2aaaa 是否为格式为 'yyyy-MM-dd' 的时间:false
字符串 20230102 是否为格式为 'yyyyMMdd' 的时间:true

原理:

定义了一个名为 isValidDateFormat 的方法,该方法接受两个参数:dateStr(需要检查的日期字符串)和 dateFormat(指定的日期格式)。方法内部使用 DateUtil.parse() 方法尝试将字符串解析为日期对象。如果解析成功且日期格式与指定的格式相符,则返回 true;否则返回 false

你可能感兴趣的:(一键系列,开发语言,java,学习)