我有这样的代码来解析大端-日期字符串到日期:使用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