我想解析一年,如果它无效则会获得例外。
我试过了:
DateTimeFormat.forPattern("yyyy")
但这适用于四位数以外的年份。 (" 1"有效,好像500000)。我意识到这些都是技术上有效的,但对于我的应用程序,我真的想要一个" yyyy"究竟。
我可以尝试在调用之前确保它的4位数,但是将它保留在DateTimeFormat中。
最好的方法是什么?
谢谢, -Greg
答案 0 :(得分:2)
您可以使用DateTimeFormatterBuilder和方法appendFixedDecimal
创建格式化程序DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.appendFixedDecimal(DateTimeFieldType.year(), 4)
.toFormatter();
在这种情况下,格式化程序将为非4位数年份抛出异常
或如果您使用的是Java 8,则可以使用JDK中的DateTimeFormatter。
java.time.format.DateTimeFormatter formatter =
java.time.format.DateTimeFormatter.ofPattern("yyyy");
JDK的格式化程序会抛出此类日期的异常