0

JSF primefaces カレンダーにロケールのサポートを追加しようとすると、問題が発生します。

私はロケールを渡しています & カレンダー UI サポート用のロケール js ファイルも追加しました。しかし、ユーザーがカレンダーから日付を選択すると、その後、日付を解析して日付を検証するためのJavaコードが下にあります。

現在のロケール: fr ユーザーが UI カレンダーから "21-Aoû-2015" を選択したとします。しかし、Java日付形式の場合

   "21-Aug-2015" in fr locale is "21-août-2015".

同様に:

   "10-Apr-2019" is "10-avr.-2019"

以下のコードを使用しています & 選択したロケールは「fr」です:

    Date date = null;
    boolean isDateValid = false;
    for (String pattern : patterns) {

        DateFormat df = new SimpleDateFormat(pattern, locale);
        try {
            date = df.parse(value);

            String newDateString = df.format(date);
            System.out.println(newDateString);

            isDateValid = true;
            break;

        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

    System.out.println("Date : " + date);

したがって、私が見つけた主な理由は、Java DateFormat パースの不一致です。例: ロケールが "fr" フランス語の場合。

Java パース:

"fr" ロケールの場合 -

Aug => 「Aoû」ではなく「août」

4月 => 「平均」「Avr」の代わりに

4

0 に答える 0