0

大文字の日付"28NOV2015"がありddMMMyyyyますMMM

<field name="BirthDate" type="date" format="ddMMMyyyy"/>

日付の解析時にエラーを下回る

スレッド「メイン」org.springframework.core.convert.ConversionFailedException の例外: 値 '28NOV2015' の型 [java.lang.String] から型 [java.util.Date] への変換に失敗しました。ネストされた例外は java.lang.IllegalArgumentException です

それを文字列として取得してからキャストすることで解決することは明らかであり、すでにそれを行っていました。

直接解析できる方法はありますか。

4

1 に答える 1

0

shortWeekdays を設定する必要がありますが、ファイルで受け取り、DateTypeHandler をカスタマイズした SimpleDateFormat に上書きします。

public class MyCustomDateFormatHandler extends DateTypeHandler {

    String[] capitalDays = {
        "", "SUN", "MON",
        "TUE", "WED", "THU",
        "FRI", "SAT"
    };

    @Overwrite
    protected DateFormat createDateFormat() {
            if (this.pattern == null) {
                return createDefaultDateFormat();
            }

            symbols = new DateFormatSymbols(this.locale);
            symbols.setShortWeekdays(capitalDays);
            DateFormat df = new SimpleDateFormat(this.pattern, symbols);;
            df.setLenient(this.lenient);
            if (this.timeZone != null) {
                df.setTimeZone(this.timeZone);
            }
            return df;
        }

}

そしてそれを使う

<typeHandler name="myCustomDateFormatHandler" class="MyCustomDateFormatHandler" />

<field name="BirthDate" type="date" format="ddMMMyyyy" typeHandler="myCustomDateFormatHandler"/>
于 2016-11-10T10:25:54.197 に答える