前端的input类型中的datetime-local传到后端用LocalDateTime接收

做毕设时也没用别的时间类型的第三方的插件,直接用的\ 之后直接用ajax把表单提交了,但是后端用LocalDateTime接收的话会报错,如果用@ValidBindingResult就可以看到报错信息了,而且也接收不到时间,所以记录一下。

通过在字段上加@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")也没用,之后看报错的信息发现数据长度对不上,因为LocalDateTime 的格式是yyyy-MM-ddTHH:mm:ss,但是传到后端的时间数据实际上是yyyy-MM-ddTHH:mm这样的,缺少了:ss

解决方法: 网上有前端解决的,因为我是表单提交,就没触发函数回调处理时间,直接后端处理时间

  1. 首先接收时间类型的字段改成String
  2. 把字符串转换成LocalDateTime就可以了
  DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  LocalDateTime.parse(“后端接收时间的字符串”.replaceAll("T", " ") + ":00", df)

我自我感觉太low了,应该有更好的解决办法,但是赶时间能解决问题就行,如果有更好的解决方法请告诉我一声

你可能感兴趣的:(java,前端,java)