问题描述

org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.util.Date'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@org.springframework.web.bind.annotation.RequestParam java.util.Date] for value '1571846399000'; nested exception is java.lang.IllegalArgumentException

解决方案

方案一:

package org.javaboy.vhr.converter;import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;/*** @作者 江南一点雨* @公众号 江南一点雨* @微信号 a_java_boy* @GitHub https://github.com/lenve* @博客 http://wangsong.blog.csdn.net* @网站 http://www.javaboy.org* @时间 2019-11-20 8:08*/
@Component
public class DateConverter implements Converter<String, Date> {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");@Overridepublic Date convert(String source) {try {return sdf.parse(source);} catch (ParseException e) {e.printStackTrace();}return null;}
}

方案二:

package com.zstu.metrocity.converter;import lombok.extern.slf4j.Slf4j;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Pattern;/*** @Author ShenTuZhiGang* @Version 1.0.0* @Date 2020-05-23 17:55*/
@Slf4j
@Component
public class DateConverter implements Converter<String, Date> {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");private static final Pattern HH_MM_SS_SSS = Pattern.compile(".*[ ][0-9]{2}:[0-9]{2}:[0-9]{2}:[0-9]{0,3}");private static final Pattern YYYY_MM_DD = Pattern.compile("^[0-9]{4}-[0-9]{2}-[0-9]{2}.*");private static final Pattern YYYY_M_D = Pattern.compile("^[0-9]{4}-[0-9]{1}-[0-9]+.*||^[0-9]{4}-[0-9]+-[0-9]{1}.*");private static final Pattern YY_MM_DD = Pattern.compile("^[0-9]{2}-[0-9]{2}-[0-9]{2}.*");private static final Pattern YY_M_D = Pattern.compile("^[0-9]{2}-[0-9]{1}-[0-9]+.*||^[0-9]{2}-[0-9]+-[0-9]{1}.*");private static final Pattern HH_MM_SS = Pattern.compile(".*[ ][0-9]{2}:[0-9]{2}:[0-9]{2}");private static final Pattern HH = Pattern.compile(".*[ ][0-9]{2}");private static final Pattern HH_MM = Pattern.compile(".*[ ][0-9]{2}:[0-9]{2}");/*** 字符串转日期适配方法** @param source 日期字符串* @throws*/@Overridepublic Date convert(String source) {Date date = null;if (!(null == source|| "".equals(source))) {//判断是不是日期字符串,如Wed May 28 08:00:00 CST 2014if (source.contains("CST")) {date = new Date(source);} else {source = source.replace("年", "-").replace("月", "-").replace("日", "").replaceAll("/", "-").replaceAll("\\.", "-").trim();String fm = "";//确定日期格式if (YYYY_MM_DD.matcher(source).matches()) {fm = "yyyy-MM-dd";} else if (YYYY_M_D.matcher(source).matches()) {fm = "yyyy-M-d";} else if (YY_MM_DD.matcher(source).matches()) {fm = "yy-MM-dd";} else if (YY_M_D.matcher(source).matches()) {fm = "yy-M-d";}//确定时间格式if (HH.matcher(source).matches()) {fm += "HH";} else if (HH_MM.matcher(source).matches()) {fm += "HH:mm";} else if (HH_MM_SS.matcher(source).matches()) {fm += "HH:mm:ss";} else if (HH_MM_SS_SSS.matcher(source).matches()) {fm += "HH:mm:ss:sss";}if (!"".equals(fm)) {try {date = new SimpleDateFormat(fm).parse(source);} catch (ParseException e) {log.warn("参数字符串" + source + "无法被转换为日期格式!");}}}if (date == null) {long l = Long.parseLong(source);date = new Date(l);}}return date;}}

参考文章

https://blog.csdn.net/gwd1154978352/article/details/75041733

https://blog.csdn.net/dufuzhixinY/article/details/102756732

https://blog.csdn.net/sinat_30735061/article/details/96708826

https://blog.csdn.net/u011321758/article/details/80310678

Spring MVC——ConverterltString, Dategt DEMO相关推荐

  1. spring mvc 和ajax异步交互完整实例

    2019独角兽企业重金招聘Python工程师标准>>> Spring MVC 异步交互demo: 1.jsp页面: <%@ page language="java&q ...

  2. Spring MVC中使用Swagger生成API文档和完整项目示例Demo,swagger-server-api(二十)

    一:Swagger介绍 Swagger是当前最好用的Restful API文档生成的开源项目,通过swagger-spring项目 实现了与SpingMVC框架的无缝集成功能,方便生成spring r ...

  3. Spring MVC+Ant+Tomcat+Eclipse最简单的demo

    第一步是Java的Web环境搭建,下载Eclipse(或者更好的但收费的IDE-IntelliJ Idea,和Resharper一家公司出的),下载Tomcat,下载JDK,下载Spring,注意安装 ...

  4. Spring Mvc 入门Demo

    1.web.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns=" ...

  5. Spring MVC 使用支付宝接口DEMO

    本篇文章主要介绍了Spring MVC 使用支付宝接口完成在线支付的示例代码,具有一定的参考价值,有兴趣的可以了解一下 项目中要使用到在线支付功能 目前常用的在线支付手段主要是 支付宝 和微信. 这里 ...

  6. spring mvc 基于maven的完整demo

    记录一下使用maven构建第一个spring mvc工程的经过. 环境: eclipse Kepler Service Release 2 jdk 1.7 tomcat7.0.52 这里假定eclip ...

  7. spring mvc + mybatis 框架搭建 ( idea + gradle)

    spring mvc + mybatis 框架搭建 idea + gradle 刚刚入门,只是个人见解,如有错误或者问题欢迎指出指正. 邮箱: [ wgh0807@qq.com ] 文章引用: [ap ...

  8. Spring MVC 五大组件

    欢迎关注方志朋的博客,回复"666"获面试宝典 是一个MVC架构,用来简化基于MVC架构的Web应用开发.SpringMVC最重要的就是五大组件 1. DispatcherServ ...

  9. [Spring mvc 深度解析(一)] 详解Servlet

    详解Servlet ​ Servlet是Server+Applet的缩写,表示一个服务器应用.通过上面的分析我们知道Servlet其实就是一套规范,我们按照这套规范写的代码就可以直接在Java的服务器 ...

最新文章

  1. ASP .NET Core MVC 控制器中获取当前登录用户
  2. [转]Loadrunner Error code 10053 Tomcat 连接器(connector)优化
  3. 淡谈泛型约束T(转)
  4. 细数英特尔收购McAfee可获得安全产品
  5. 混合运算lcd显示_各界巨头寄予厚望 MicroLED靠什么成为显示屏的未来
  6. qt开发环境 - c++之结构,联合,枚举
  7. SVN系列操作(一)
  8. html5 java 图片上传_java实现图片上传至服务器并显示,如何做?希望要具体的代码实现...
  9. 如何使用 Firefox 阻止指纹识别的侵扰?
  10. kubernetes管理mysql_kubernetes云平台管理实战:tomcat + mysql(十二)
  11. OSPF OVER FR HUB-SPPKE
  12. 超级楼梯HDU2041
  13. proxy_set_header的设置
  14. Xcode 快捷键大全 2020 - 持续更新
  15. Python 字典与集合
  16. js将人民币小写金额转换为大写
  17. XPS是什么格式?如何编辑?
  18. mysql查询连续记录
  19. Docker和Pycharm
  20. 如何用手机给视频变速

热门文章

  1. WDS系列--Windows Deployment Services概述篇
  2. php excel 单元格类型,设置20个单元格类型后,PhpExcel停止工作
  3. exfat文件系统_u盘文件系统exfat格式优缺点有哪些【详细介绍】
  4. onvif 客户端 linux,Linux下onvif客户端关于ipc摄像头的搜索
  5. excel判断字符串包含另一个字符串_【前端冷知识】如何正确判断一个字符串是数值?...
  6. 搭建一个Struts2工程
  7. 使用 Pandas GUI 进行数据探索
  8. 【机器学习算法专题(蓄力计划)】一、机器学习简史和常用算法的梳理
  9. 三十六、 SQL基本语法
  10. 【Python金融量化 2- 100 】股票量化分析基本知识