2015-10-19 4 views
1

Я использую пружине 4.2.1 RELEASESpring @DateTimeFormat неправильный формат

, когда я использую это выражение

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss.S") 
    public void setModifiedTime(DateTime modifiedTime) { 
    this.mod = modifiedTime; 
    } 

Я получил исключение, как это.

Invalid format: "2015-10-07 12:56:37.0" is malformed at " 12:56:37.0" 

Но как ни странно, это нормально

public void setModifiedTime(String modifiedTime) { 
    this.mod = this.modifiedTime = org.joda.time.format.DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.S").parseDateTime(modifiedTime);; 
    } 

почему эта ошибка? У вас есть решения? Спасибо за помощь!

+0

и я использую jackson joda 2.6.x – moon

ответ

0

Я еще не могу прокомментировать, так что вот вопрос: что происходит, когда вы используете один из атрибутов DateTimeFormat.ISO в качестве значения атрибута ISO? (Код из головы, не может скомпилировать)

@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) 
    public void setModifiedTime(DateTime modifiedTime) { 
    this.mod = modifiedTime; 
    } 

Пожалуйста, проверьте также, если Ваш «образец решения» работает для обычного объекта Date. Из документов о @DateTimeFormat

Поддерживает форматирование по шаблону стиля, шаблону даты ISO или строке шаблона произвольного формата. Может применяться к java.util.Date, java.util.Calendar, java.long.Long, типам значений Joda-Time; и с весны 4 и JDK 8, для JSR-310 типов java.time тоже.

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