2014-09-02 36 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的格式化拋出異常,這樣的日期