2017-05-03 55 views
2

我只需要顯示日/天的後綴,我該如何實現這一點? 它不工作:jodatime - PeriodFormatter:僅限於日/天的後綴

java.lang.IllegalStateException:沒有現場申請後綴來..

private PeriodFormatter getDayTextFormatter() { 
     return new PeriodFormatterBuilder() 
       .printZeroNever() 
       .appendSuffix("day", "days") 
       .toFormatter(); 
    } 

回答

1

我不認爲這是可能的。

拋出:根據JodaTime's javadoc,如果沒有現場追加後綴appendSuffix方法會拋出異常IllegalStateException - 如果沒有現場存在追加到

所以我相信JodaTime不能這次幫助你。雖然,你可以做這樣的事情:

private String suffix(Period p) { 
    int days = p.getDays(); 
    if (days <= 0) { 
     return ""; 
    } 

    return days == 1 ? "day" : "days"; 
} 

有了這個代碼,如下:

System.out.println(suffix(Period.days(1))); 
System.out.println(suffix(Period.days(2))); 
System.out.println(suffix(new Period())); 

產生輸出:

day 
days 
// and a line with an empty string 
+1

最簡單的解決方案的最佳;) – AppiDevo

+0

@AppiDevo確實! – 2017-05-03 19:26:15