判断日期格式的方法

本文介绍了一种使用Java实现的日期格式校验方法,确保传入的日期字符串符合yyyy-MM-dd的标准格式,并通过SimpleDateFormat设置非宽松模式避免不合理的日期转换。

需要校验传入的日期格式为yyyy-MM-dd

public class Test {
    public static void main(String[] args) {
     
        System.out.println(validateDateOfDay("2000-15-15"));

    }
    public static boolean validateDateOfDay(String date) {
        boolean flag = true;
        if(null == date){
            flag = false;
            return flag;
        }
        if (date.length() != 10) {
            flag = false;            
            return flag;
        }
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        //加上这个  就不会出现 2000-15-15日 变成2001-3-13日了
        sdf.setLenient(false);
        
        try {
            System.out.println(sdf.parse(date));
            sdf.parse(date);
        } catch (ParseException e) {
            flag = false;
        }
        return flag;
    }
}

转载于:https://my.oschina.net/u/3215454/blog/824411

### 在MySQL中验证日期格式方法 在MySQL中,可以通过多种方法来验证日期是否符合特定的格式。以下内容详细介绍了如何使用正则表达式和内置函数来实现这一目标。 #### 使用正则表达式验证日期格式 通过`REGEXP`或`RLIKE`关键字可以验证字符串是否符合指定的日期格式。例如,要验证一个字符串是否为`YYYY-MM-DD`格式的日期,可以使用以下正则表达式: ```sql '^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$' ``` 该正则表达式的结构如下: - `^[0-9]{4}`:匹配四位数字作为年份。 - `(0[1-9]|1[0-2])`:匹配月份部分,范围为01到12。 - `(0[1-9]|[1-2][0-9]|3[0-1])`:匹配日期部分,范围为01到31。 - `$`:表示字符串的结尾。 以下是一个示例查询,用于验证表中的某一列是否包含正确格式的日期[^5]: ```sql SELECT * FROM your_table WHERE your_date_column REGEXP '^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$'; ``` #### 使用`STR_TO_DATE()`函数验证日期格式 除了正则表达式外,还可以使用`STR_TO_DATE()`函数将字符串转换为日期类型。如果转换失败,则说明字符串不符合指定的日期格式。例如,验证一个字符串是否为`YYYY-MM-DD`格式,可以使用以下语句: ```sql SELECT STR_TO_DATE(your_date_column, '%Y-%m-%d') IS NOT NULL AS is_valid_date FROM your_table; ``` 此方法不仅验证了字符串是否符合指定格式,还确保了日期的有效性(例如,不存在2月30日这样的无效日期)[^3]。 #### 结合正则表达式与日期转换函数 为了更全面地验证日期格式,可以结合正则表达式和`STR_TO_DATE()`函数。以下是一个示例查询,先通过正则表达式筛选出可能符合格式的记录,再使用`STR_TO_DATE()`进一步验证日期的有效性: ```sql SELECT * FROM your_table WHERE your_date_column REGEXP '^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$' AND STR_TO_DATE(your_date_column, '%Y-%m-%d') IS NOT NULL; ``` 这种方法既保证了格式的正确性,也验证了日期的实际有效性[^5]。 #### 创建自定义函数验证日期格式 为了提高代码的复用性和可读性,可以创建一个自定义函数来验证日期格式。以下是一个示例函数,用于判断输入字符串是否为有效的`YYYY-MM-DD`格式日期: ```sql DELIMITER $$ CREATE FUNCTION validate_date_format(input_date VARCHAR(10)) RETURNS BOOLEAN DETERMINISTIC BEGIN DECLARE valid BOOLEAN; SET valid = (input_date REGEXP '^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$' AND STR_TO_DATE(input_date, '%Y-%m-%d') IS NOT NULL); RETURN valid; END$$ DELIMITER ; ``` 调用该函数时,可以像以下示例一样使用: ```sql SELECT validate_date_format('2023-11-28') AS is_valid; ``` #### 使用`DATE_FORMAT()`函数格式化日期 如果需要将日期从一种格式转换为另一种格式,可以使用`DATE_FORMAT()`函数。例如,将日期从`YYYY-MM-DD`格式转换为`DD/MM/YYYY`格式,可以使用以下语句: ```sql SELECT DATE_FORMAT(your_date_column, '%d/%m/%Y') AS formatted_date FROM your_table; ``` 此函数主要用于输出日期的格式化,而不是验证日期的格式[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值