解决springboot|解决springboot 实体类String转Date类型的坑
目录
- springboot 实体类String转Date类型
- Date解析String类型的参数
springboot 实体类String转Date类型 前端传入一个String的时间字符串如:2019-07-18 23:59:59
后端实体类要在头顶加注解:
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
文章图片
不然会出现报错
文章图片
Date解析String类型的参数 1.首先建立String to Date 的解析实现
import org.apache.commons.lang3.StringUtils; import org.springframework.core.convert.converter.Converter; import java.text.SimpleDateFormat; import java.util.Date; public class StringToDateConverter implements Converter {private static final String dateFormat = "yyyy-MM-dd HH:mm:ss"; private static final String shortDateFormat = "yyyy-MM-dd"; @Overridepublic Date convert(String value) {if (StringUtils.isEmpty(value)) {return null; }value = https://www.it610.com/article/value.trim(); try {if (value.contains("-")) {SimpleDateFormat formatter; if (value.contains(":")) {formatter = new SimpleDateFormat(dateFormat); } else {formatter = new SimpleDateFormat(shortDateFormat); }Date dtDate = formatter.parse(value); return dtDate; } else if (value.matches("^\\d+$")) {Long lDate = new Long(value); return new Date(lDate); }} catch (Exception e) {throw new RuntimeException(String.format("parser %s to Date failed", value)); }throw new RuntimeException(String.format("parser %s to Date failed", value)); }}
2.创建全局的解析配置
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.core.convert.support.GenericConversionService; import org.springframework.web.bind.support.ConfigurableWebBindingInitializer; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; import javax.annotation.PostConstruct; @Configurationpublic class DateHandlerAdapter {@Autowiredprivate RequestMappingHandlerAdapter handlerAdapter; /*** 增加字符串转日期的全局适配器*/@PostConstructpublic void initEditableAvlidation() {ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer) handlerAdapter.getWebBindingInitializer(); if (initializer.getConversionService() != null) {GenericConversionService genericConversionService = (GenericConversionService) initializer.getConversionService(); genericConversionService.addConverter(new StringToDateConverter()); }}}
添加完这两个文件以后 在传参数类型为Date的参数时就不会再报 date解析失败的错误了。
【解决springboot|解决springboot 实体类String转Date类型的坑】以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- Activiti(一)SpringBoot2集成Activiti6
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- Spark|Spark 数据倾斜及其解决方案
- 解决SyntaxError:|解决SyntaxError: invalid syntax
- Spectrum|Spectrum 区块偶尔停止同步问题排查与解决笔记
- 一劳永逸地解决词汇量不够的问题