3
この関数に無効な日付が渡され、IllegalFieldValueExcptionがスローされた場合、デフォルトの日付は0001-01-01
です。しかし、以下のコードを実行するとdefaultDate
で作成された日付は0001-01-02
ですが、これは間違っています。誰かが私が間違っている何かを見ていますか?構文解析日付01-01-0001とjodatime
public Date unmarshal(String string) {
DateTimeFormatter fmt = new DateTimeFormatter(null, DateTimeFormat.forPattern("yyyy-MM-dd").getParser());
Date defaultDate = DateTime.parse("0001-01-01", fmt).toDate();
try {
return formatter.parseDateTime(string).toDate();
}
catch (IllegalFieldValueException e) {
return defaultDate;
}
}
EDIT:
私はこれらの最初の2行を更新し、それが完璧に今働いている、ありがとう!
Chronology chrono = GJChronology.getInstance();
Date defaultDate = new DateTime(0001, 01, 01, 10, 0, 0, 0, chrono).toDate();
+1。 "0001-01-01のデフォルトの日付を返すために"悪い(jodatimeかどうか)。代わりに 'null'を返す方が良いでしょうか? – leonbloy
0001-01-01は私たちのシステムで使用されている '低い日付'ですが、私はこれを作成せず、必要なものです。 –
これは、Oracleデータベースの非NULLの低い日付の場合にも非常に一般的な日付値です –