DateTimeFormatter.parseLocalDate抛出UnsupportedOperationException
问题描述:
parseLocalDate的API说它会抛出UnsupportedOperationException
“如果解析不被支持”。 '如果解析不被支持'意味着什么?我正在查看源代码,找不到任何引发UnsupportedOperationException
的问题。有没有人遇到过这种例外情况:parseLocalDate
?DateTimeFormatter.parseLocalDate抛出UnsupportedOperationException
答
DateTimeFormatter有两种用法:
- 打印日期;
- 解析日期;
当您创建DateTimeFormatter instance,你传递给它DateTimePrinter和DateTimeParser。
如果您格式化只有打印机,并希望解析日 - UnsupportedOperationException
将被抛出。
如果您格式化只有解析器,并且要打印日 - UnsupportedOperationException
将被抛出。
例
DateTimeFormatter formatter = new DateTimeFormatter(new DateTimePrinter()
{
// implements all abstract methods
}, null); // this instance has printer and hasn't parser
formatter.print(new DateTime()); // works well
formatter.parseDateTime("datetimestring"); // throws exeption
阿好知道了,谢谢。看起来好像'org.joda.time.format.DateTimeFormat.forPattern(String)'将总是返回一个带打印机和解析器的'DateTimeFormatter';所以通过'forPattern'获取的'DateTimeFormatter'不应该抛出UnsupportedOperationException正确吗? – FGreg 2013-05-03 13:22:16
@FGreg是的,这是真的 – Ilya 2013-05-03 13:27:14
此外,请注意有两个类似的实例方法:'ISODateTimeFormat.dateTime()'和'ISODateTimeFormat.dateTimeParser()'。如果你使用后者并尝试'.format(dateTime)',你会得到这个异常。 – membersound 2015-02-06 14:37:09