ホームページ >Java >&#&チュートリアル >Java で日付形式を検証するにはどうすればよいですか?

Java で日付形式を検証するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-29 05:56:02506ブラウズ

How Can I Validate Date Formats in Java?

Java での日付形式の検証

ユーザー入力文字列を扱う場合、指定された日付が特定の日付形式に従っていることを確認することが重要になります。形式。 Java で日付形式を効率的に検証する方法は次のとおりです。

例外処理に関するメモ

形式が不明な場合、文字列を日付値に解析することで問題が発生する可能性があります。したがって、このようなシナリオでは例外を適切に処理することが不可欠です。

SimpleDateFormat を使用したアプローチ

簡単な方法の 1 つは、SimpleDateFormat を利用することです。

Date date = null;
try {
    SimpleDateFormat sdf = new SimpleDateFormat(format);
    date = sdf.parse(value);
    if (!value.equals(sdf.format(date))) {
        date = null;
    }
} catch (ParseException ex) {
    // Handle exceptions here
}

if (date == null) {
    // Invalid date format
} else {
    // Valid date format
}

これこのアプローチでは、元の文字列を解析された日付の書式設定されたバージョンと比較します。一致する場合、日付形式は有効です。

例:

たとえば、文字列「20130925」が dd/MM/yyyy 形式であるかどうかを確認することを検討してください。

isValidFormat("dd/MM/yyyy", "20130925") // Returns false

さまざまな形式向けの拡張ソリューション

Java 8 以降では、DateTime API を利用できます。これにより、さまざまな日付と時刻の形式を検証できます。

LocalDateTime ldt = null;
DateTimeFormatter fomatter = DateTimeFormatter.ofPattern(format, locale);

try {
    ldt = LocalDateTime.parse(value, fomatter);
    String result = ldt.format(fomatter);
    return result.equals(value);
} catch (DateTimeParseException e) {
    // Attempt parsing as date or time only
}

return false;

このアプローチでは、さまざまな解析を試みて結果を比較することで、複数の形式 (日付のみ、時刻付き日付、時刻のみ) を処理します。

更新された例:

更新されたソリューションの使用:

isValidFormat("dd/MM/yyyy", "20130925") // Returns false
isValidFormat("dd/MM/yyyy", "25/09/2013") // Returns true
isValidFormat("dd/MM/yyyy", "25/09/2013 12:13:50") // Returns false

以上がJava で日付形式を検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。