Spring @DateTimeFormat格式错误

时间:2015-10-19 02:33:29

标签: spring jackson jodatime

我正在使用spring 4.2.1 RELEASE

当我使用这个表达式时

@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);;
  }

为什么会出现此错误?你有什么解决办法? 谢谢你的帮助!

1 个答案:

答案 0 :(得分: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值类型;从Spring 4和JDK 8开始,到JSR-310也是java.time类型。