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请求生命周期与自定义详解
上一篇: 敦煌网怎么做,姑苏版画是如何影响日本的?
下一篇:分享thinkphp下载安装教程
上一篇: 敦煌网怎么做,姑苏版画是如何影响日本的?
下一篇:分享thinkphp下载安装教程

