【问题标题】:Spring @DateTimeFormat malformedSpring @DateTimeFormat 格式错误
【发布时间】:2016-01-17 06:54:06
【问题描述】:

我正在使用 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);;
  }

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

【问题讨论】:

  • 我使用的是 jackson joda 2.6.x

标签: spring jackson jodatime


【解决方案1】:

我还不能发表评论,所以这里有一个问题 - 当您使用 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 类型也是如此。

【讨论】:

    猜你喜欢
    • 2018-10-12
    • 2011-12-22
    • 2011-12-10
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    相关资源
    最近更新 更多