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;
}
}
編輯:
我的前兩行與這些更新,它現在的工作完美,謝謝!
Chronology chrono = GJChronology.getInstance();
Date defaultDate = new DateTime(0001, 01, 01, 10, 0, 0, 0, chrono).toDate();
+1。 「返回默認日期0001-01-01」味道不好(不管是不是)。或許更好地返回'null'呢? – leonbloy 2012-04-19 13:52:51
0001-01-01是我們系統使用的'低日期',我沒有創建它,它只是它需要的。 – 2012-04-19 13:57:54
這也是Oracle數據庫中非空日期較低的日期值 – 2012-04-19 13:59:12