我有這樣的代碼來解析大端-日期字符串到日期:使用DateFormat解析日期,它爲什麼會起作用?
public static final Date fromBigEndian(String dateBigEndian) {
DateFormat bigEndianFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
return bigEndianFormat.parse(dateBigEndian);
} catch (ParseException e) {
return null;
}
}
和這個測試用例:
@Test
public void returnNullIfDoesNotMatchBigEndianFormat() {
String nonBigEndianDate = "01-06-2016";
Date parsedDate = DateUtil.fromBigEndian(nonBigEndianDate);
assertNull(parsedDate);
}
但它失敗。它返回一個日期而不是null,但"01-06-2016"
的格式與"yyyy-MM-dd"
的格式不匹配。爲什麼這種方法不會拋出ParseException
?
'Date'對象包含什麼? –
請注意'DateFormat.parse()'的javadoc:source - 應該解析其**開頭**的字符串。 ... ParseException - 如果指定字符串的**開頭**不能被解析。 –
@krzyk [demo](http://ideone.com/7fZ00p)。這很奇怪 – BackSlash