2014-09-02 3 views
1

Я хотел бы разобрать только год, получив исключение, если оно недействительно.Joda Time - синтаксис всего 4 года год

Я пробовал:

DateTimeFormat.forPattern("yyyy") 

Но это работает для других, чем четырехзначный год. («1» действителен, как будто 500000). Я понимаю, что оба из них являются техническими, но для моего приложения я действительно хочу «yyyy» точно.

Я мог бы попытаться убедиться, что это четыре цифры перед вызовом, а скорее сохранить его внутри DateTimeFormat.

Каков наилучший способ для этого?

Спасибо, Грег

ответ

1

Вы можете создать форматировщик с DateTimeFormatterBuilder и метод appendFixedDecimal

DateTimeFormatter formatter = new DateTimeFormatterBuilder() 
    .appendFixedDecimal(DateTimeFieldType.year(), 4) 
    .toFormatter(); 

В этом случае форматировщиком выбросит исключение для не 4 цифры года

Или если вы используют Java 8, тогда вы можете использовать DateTimeFormatter от JDK. форматировщик

java.time.format.DateTimeFormatter formatter = 
    java.time.format.DateTimeFormatter.ofPattern("yyyy"); 

JDK бросает исключение для таких дат

Смежные вопросы