springboot 提交时间字符串匹配 Date 报错: Failed to convert property value of type 'java.lang.String' to require

springboot 提交时间字符串匹配 Date 报错: Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date'

解决方法:

在实体类的属性上加上 @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") 注解。

如:  
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Column(name = "LOGIN_TIME")
private Date loginTime;

 

刚才发现,如果转换的时间格式定义为 "yyyy-MM-dd HH:mm:ss",

那页面传到后台的字符串是这种格式的:"2019-01-31 14:33",后台还是会报错,因为字符串里没有 秒 的数据。

 

-----------------------------------------------------------------

另一种方法是在 controller 里加一个方法:

// 格式化页面传递到后台的 时间字符串 为 Date 类型
    @InitBinder
    protected void init( HttpServletRequest request, ServletRequestDataBinder binder ) {
        SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd hh:mm:ss" );
        dateFormat.setLenient( false );
        binder.registerCustomEditor( Date.class, new CustomDateEditor( dateFormat, false ) );
    }

不过这种 @InitBinder 的方法,在页面提交一个空字符串到后台匹配 date 时会报错。

所以,还是应该使用 @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") 注解匹配后台的 Date 对象。

------------------------------------------

如果新增或修改时间字段时,需要秒都是 00,可以把这个注解写成这样:

@DateTimeFormat( pattern = "yyyy-MM-dd HH:mm" )
————————————————
版权声明:本文为CSDN博主「guile」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/beguile/article/details/86687661

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值