时间格式问题好像是挺复杂的一个问题,但操作起来其实也不难,后台接收时间的时候要看前台传过来的格式是什么样子的,最近有遇到这个问题
Could not read document: Failed to parse Date value '2020-07-15 11:29:46'

我的解决方式是这样的:

1.前台在操作的时候加了一个时间格式的转换
//时间格式转换 $('#YourId').datetimepicker({ language : 'zh', format : "YYYY-MM-DD
HH:mm:ss", weekStart : 1, todayBtn : 1, autoclose : 1, todayHighlight : 1,
startView: 2, forceParse : 0, showMeridian : 1 }).on('changeDate', function(ev)
{ $(this).datetimepicker('hide'); });
显然,前台传过来的是YYYY-MM-DD HH:mm:ss可能有同学会说,是小写的mm和dd,不错我们在后台接收的时候需要用这个格式,那么这里有两种方法:

一、在实体类中加入

如果我们在后台Java代码中接口方法中的参数是实体中的字段,那么我们可以在实体类中找到该字段并在该字段前加入如下代码
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern =
"yyyy-MM-dd HH:mm:ss")
例如
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern =
"yyyy-MM-dd HH:mm:ss") private Date dateTestOne; @DateTimeFormat(pattern =
"yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private
Date dateTestTwo;
这样就OK了,前后的格式就一致了,就不会报错了

二、在参数前直接插入

如果后台接口方法中的参数并非字段,那么可以直接在字段前插入上述@DateTimeFormat和@JsonFormat,例如
@RequestMapping(value = { "/xxx" }, method = RequestMethod.GET) public
@ResponseBody String DateTest(HttpServletRequest req, @DateTimeFormat(pattern =
"yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")Date
dateTestOne, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(
pattern= "yyyy-MM-dd HH:mm:ss")Date dateTestTwo) { return xxx; }
两种方法选一种即可解决问题了

技术
©2019-2020 Toolsou All rights reserved,
字节三面远程,Java+Redis+网络+数据库+算法,轻松反杀面试官?停车场管理系统C语言10个经典小程序——小白必备!Cloud Alibabab笔记问世,全网详解仅此一份手慢无Bigtable论文笔记linux系统数据库服务器的性能调优方法论中国移动的宽带免费策略已不可持续10909米!中国奋斗者号在马里亚纳海沟成功坐底BATJ面试redis灵魂36问,你这么回答,面试官一定对你刮目相看基于springboot的文件上传