ホームページ > Java > &#&チュートリアル > Java は Python の dateutil と同じくらい柔軟に日付を解析できますか?

Java は Python の dateutil と同じくらい柔軟に日付を解析できますか?

Linda Hamilton
リリース: 2024-12-16 13:14:18
オリジナル
508 人が閲覧しました

Can Java Parse Dates as Flexibly as Python's dateutil?

Java で任意の日付を解析する

質問:

その称賛にもかかわらず、Joda 時間は必要ですユーザーは解析する前に日付形式を手動で指定できます。 python-dateutil に似た、幅広い日付形式を簡単に解析できる Java ライブラリはありますか?

答え:

一方、Python の dateutil ライブラリは柔軟な日付に優れています。解析し、Java で同等の結果を達成するには、実用的な方法が必要ですアプローチ:

1.正規表現のマッチング:

正規表現は、日付形式のパターンを識別する強力な手段を提供します。一般的な日付形式を対応する正規表現にマッピングすることで、特定の日付文字列の正しい形式を決定できます。

private static final Map<String, String> DATE_FORMAT_REGEXPS = new HashMap<>() {{
    put("^\d{8}$", "yyyyMMdd");
    put("^\d{1,2}-\d{1,2}-\d{4}$", "dd-MM-yyyy");
    put("^\d{4}-\d{1,2}-\d{1,2}$", "yyyy-MM-dd");
    // … (other format patterns)
}};

public static String determineDateFormat(String dateString) {
    for (String regexp : DATE_FORMAT_REGEXPS.keySet()) {
        if (dateString.toLowerCase().matches(regexp)) {
            return DATE_FORMAT_REGEXPS.get(regexp);
        }
    }
    return null; // Unknown format.
}
ログイン後にコピー

2.ブルート フォース:

日付形式を正規表現で決定できない場合は、最後の手段としてブルート フォースを使用できます。一般的な日付形式のコレクションを繰り返し処理し、それぞれの形式で日付文字列の解析を試みます。

public static Date parseDate(String dateString) {
    String dateFormat = determineDateFormat(dateString);
    if (dateFormat != null) {
        return new SimpleDateFormat(dateFormat).parse(dateString);
    }
    
    // Brute force using common formats
    for (String format : COMMON_DATE_FORMATS) {
        try {
            return new SimpleDateFormat(format).parse(dateString);
        } catch (ParseException e) {
            // Ignore parsing error
        }
    }
    
    throw new IllegalArgumentException("Invalid date format: " + dateString);
}
ログイン後にコピー

正規表現一致とブルート フォースを組み合わせることで、Java で幅広い日付形式を解析できます。 Python の dateutil ライブラリよりも少し手間がかかります。

以上がJava は Python の dateutil と同じくらい柔軟に日付を解析できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート