SpringMVC对日期类型的转换示例

发布时间 - 2026-01-10 23:03:13    点击率:

在做web开发的时候,页面传入的都是String类型,SpringMVC可以对一些基本的类型进行转换,但是对于日期类的转换可能就需要我们配置。

1、如果查询类使我们自己写,那么在属性前面加上@DateTimeFormat(pattern = "yyyy-MM-dd")  ,即可将String转换为Date类型,如下

@DateTimeFormat(pattern = "yyyy-MM-dd") 
private Date createTime; 

2、如果我们只负责web层的开发,就需要在controller中加入数据绑定:

@InitBinder 
public void initBinder(WebDataBinder binder) { 
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
dateFormat.setLenient(false); 
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); //true:允许输入空值,false:不能为空值

3、可以在系统中加入一个全局类型转换器

实现转换器

public class DateConverter implements Converter<String, Date> { 
@Override 
public Date convert(String source) { 
 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
 dateFormat.setLenient(false); 
 try { 
  return dateFormat.parse(source); 
 } catch (ParseException e) { 
  e.printStackTrace(); 
 }   
 return null; 
}

进行配置:

<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> 
  <property name="converters"> 
   <list> 
    <bean class="com.doje.XXX.web.DateConverter" /> 
   </list> 
  </property> 
</bean> 
<mvc:annotation-driven conversion-service="conversionService" /> 

4、如果将日期类型转换为String在页面上显示,需要配合一些前端的技巧进行处理。

5、SpringMVC使用@ResponseBody返回json时,日期格式默认显示为时间戳。

@Component("customObjectMapper") 
public class CustomObjectMapper extends ObjectMapper { 
 
 public CustomObjectMapper() { 
  CustomSerializerFactory factory = new CustomSerializerFactory(); 
  factory.addGenericMapping(Date.class, new JsonSerializer<Date>() { 
   @Override 
   public void serialize(Date value, JsonGenerator jsonGenerator, 
     SerializerProvider provider) throws IOException, JsonProcessingException { 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    jsonGenerator.writeString(sdf.format(value)); 
   } 
  }); 
  this.setSerializerFactory(factory); 
 } 
}

配置如下:

<mvc:annotation-driven> 
 <mvc:message-converters> 
  <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> 
   <property name="objectMapper" ref="customObjectMapper"></property> 
  </bean> 
 </mvc:message-converters> 
</mvc:annotation-driven> 

6、date类型转换为json字符串时,返回的是long time值,如果需要返回指定的日期的类型的get方法上写上@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") ,即可将json返回的对象为指定的类型。

@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") 
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") 
public Date getCreateTime() { 
return this.createTime; 
} 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# spring  # mvc  # 日期转换  # springmvc  # 日期处理  # 日期  # 如何使用SpringMVC的消息转换器设置日期格式  # 解决springmvc关于前台日期作为实体类对象参数类型转换错误的问题  # SpringMVC中日期格式的转换  # SpringMVC用JsonSerialize日期转换方法  # SpringMVC自定义日期转换器方式  # 转换为  # 可将  # 的是  # 都是  # 使我  # 以对  # 写上  # 绑定  # 大家多多  # 为空  # bean  # true  # Converter  # implements  # DateConverter  # setLenient  # dateFormat  # SimpleDateFormat  # CustomDateEditor  # registerCustomEditor 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  5种Android数据存储方式汇总  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  微信小程序 input输入框控件详解及实例(多种示例)  PythonWeb开发入门教程_Flask快速构建Web应用  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  如何在阿里云通过域名搭建网站?  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  如何快速搭建高效服务器建站系统?  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  如何在 React 中条件性地遍历数组并渲染元素  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  Laravel安装步骤详细教程_Laravel环境搭建指南  如何在Ubuntu系统下快速搭建WordPress个人网站?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何在建站之星网店版论坛获取技术支持?  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  如何选择PHP开源工具快速搭建网站?  UC浏览器如何设置启动页 UC浏览器启动页设置方法  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  Android中AutoCompleteTextView自动提示  香港服务器租用费用高吗?如何避免常见误区?  Laravel如何实现用户注册和登录?(Auth脚手架指南)  北京网站制作公司哪家好一点,北京租房网站有哪些?  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  如何在建站主机中优化服务器配置?  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  Swift开发中switch语句值绑定模式  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  高性能网站服务器配置指南:安全稳定与高效建站核心方案  JS弹性运动实现方法分析  Laravel如何生成API文档?(Swagger/OpenAPI教程)  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  如何用狗爹虚拟主机快速搭建网站?  如何在万网ECS上快速搭建专属网站?  个人摄影网站制作流程,摄影爱好者都去什么网站?  晋江文学城电脑版官网 晋江文学城网页版直接进入  如何用AWS免费套餐快速搭建高效网站?  专业商城网站制作公司有哪些,pi商城官网是哪个?  网站建设保证美观性,需要考虑的几点问题!  Laravel如何使用Blade组件和插槽?(Component代码示例)  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解