2

機能する SimpleDateFormat を使用して、韓国の日付形式で日付を解析しようとしています。ただし、年 (년)、月 (월)、日 (일) などのパターンで韓国語の文字を追加することへの依存を削除したいと思います。

    String dateinKorean = "2013년 9월 26일 (목)";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy'년' M'월' d'일' '('EE')'",  Locale.KOREA);
    try {
        Date dt = sdf.parse(dateinKorean);
        System.out.println(dt.toGMTString());
    } catch (ParseException e) {
        e.printStackTrace();
    }

DateFormatSymbols クラスを使用して、ロケールを使用して日付を解析しようとしていますが、問題は完全な日付を解析できないことです。個々の月 (MM)、年 (yyyy)、または日 (dd) を解析できません問題。

        DateFormatSymbols df = DateFormatSymbols.getInstance(Locale.KOREAN);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy MM dd", df);
        try {
            // 2013년 9월 26일
            Date dt = sdf.parse("2013년 9월 26일");
        } catch (ParseException e) {

        }

上記以外の日付を解析する方法が他にあるかどうかを特定するのを手伝ってもらえますか?

4

1 に答える 1

0

日付形式に「固定」文字が含まれている場合はそのまま使用されるため、形式に「年」や「月」などの単語が含まれていると無視できません。

解析する前に文字列から数字以外をすべて削除することで、これを回避できます。次に例を示します。

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", df);
    Date dt = sdf.parse("2013년 9월 26일".replaceAll("\\D+", "-"));

より良い解決策は、日付形式を国際化して、サポートする各言語が独自の形式を持つようにすることです。

于 2013-09-26T11:48:14.493 に答える