2014-09-02 37 views
1

我想解析出一年,得到一个例外,如果它无效。乔达时间 - 解析只有4位数字年

我已经试过:

DateTimeFormat.forPattern("yyyy") 

但是,这适用于除四位数年份。 (“1”有效,就好像500000)。我意识到这两个技术都是有效的,但对于我的应用程序,我确实需要一个“yyyy”。

我可以试着看一下,确保它在调用之前是4位数字,而是将它保存在DateTimeFormat中。

这样做的最好方法是什么?

感谢, -Greg

回答

1

您可以创建格式与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的格式化抛出异常,这样的日期