如何使用 java 验证日期字符串是否符合预期格式

本文将介绍如何使用 java 验证日期字符串是否符合预期格式,例如:2024-08-21 是否符合 yyyy-MM-dd 日期格式

在这个示例中,使用 SimpleDateFormat 类来尝试解析给定的日期字符串。通过将格式设置为 yyyy-MM-dd 并将其设置为不宽容模式(即不允许无效日期,如2月30日等)。如果解析成功则表示日期是有效的,否则无效。

以下是用 Java 验证日期正确性的方法:

/**
 * 验证输入的日期字符串是否符合 yyyy-MM-dd 格式
 */
public static boolean isValidDate(String dateStr) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    // 禁用宽松解析
    sdf.setLenient(false);  
    try {
        // 解析日期格式,不抛出异常,则符合预期格式
        sdf.parse(dateStr);
        return true;
    } catch (ParseException e) {
        // 抛出异常,则不是预期的日期格式
        return false;
    }
}

测试代码:

package com.hxstrive.demo202408;

import java.text.ParseException;
import java.text.SimpleDateFormat;

/**
 * 验证日期格式是否有效
 * @author hxstrive.com
 */
public class Demo20240821134004 {

    public static boolean isValidDate(String dateStr) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        sdf.setLenient(false);
        try {
            sdf.parse(dateStr);
            return true;
        } catch (ParseException e) {
            return false;
        }
    }

    public static void main(String[] args) {
        String validDate = "2024-08-21";
        String invalidDate = "2024-13-21";

        System.out.println(validDate + " is valid? " + isValidDate(validDate));
        System.out.println(invalidDate + " is valid? " + isValidDate(invalidDate));
    }

}

运行输出结果:

2024-08-21 is valid? true
2024-13-21 is valid? false

少壮不努力,老大徒悲伤。——汉乐府古辞《长歌行》
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号