Joda Time - 解析仅4位数年份

时间:2014-09-02 00:08:14

标签: jodatime

我想解析一年,如果它无效则会获得例外。

我试过了:

DateTimeFormat.forPattern("yyyy")

但这适用于四位数以外的年份。 (" 1"有效,好像500000)。我意识到这些都是技术上有效的,但对于我的应用程序,我真的想要一个" yyyy"究竟。

我可以尝试在调用之前确保它的4位数,但是将它保留在DateTimeFormat中。

最好的方法是什么?

谢谢, -Greg

1 个答案:

答案 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的格式化程序会抛出此类日期的异常