如果这个函数被传递了一个无效的日期并且一个 IllegalFieldValueExcption 被抛出,我想返回一个默认的日期0001-01-01
。但是当运行下面的代码时,创建的日期是defaultDate
is 0001-01-02
,这是错误的。有没有人看到我做错了什么?
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();