SpringMVC对日期类型的转换
在做web开发的时候,页面传入的都是String类型,SpringMVC可以对一些基本的类型进行转换,但是对于日期类的转换可能就需要我们配置。
1、如果查询类使我们自己写,那么在属性前面加上@DateTimeFormat(pattern = "yyyy-MM-dd") ,即可将String转换为Date类型,如下
@DateTimeFormat(pattern = "yyyy-MM-dd") private Date createTime;
2、如果我们只负责web层的开发,就需要在controller中加入数据绑定:
1 @InitBinder 2 public void initBinder(WebDataBinder binder) { 3 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 4 dateFormat.setLenient(false); 5 binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); //true:允许输入空值,false:不能为空值
3、可以在系统中加入一个全局类型转换器
实现转换器
1 public class DateConverter implements Converter<String, Date> { 2 @Override 3 public Date convert(String source) { 4 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 5 dateFormat.setLenient(false); 6 try { 7 return dateFormat.parse(source); 8 } catch (ParseException e) { 9 e.printStackTrace(); 10 } 11 return null; 12 }
进行配置:
<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时,日期格式默认显示为时间戳。
1 @Component("customObjectMapper") 2 public class CustomObjectMapper extends ObjectMapper { 3 4 public CustomObjectMapper() { 5 CustomSerializerFactory factory = new CustomSerializerFactory(); 6 factory.addGenericMapping(Date.class, new JsonSerializer<Date>() { 7 @Override 8 public void serialize(Date value, JsonGenerator jsonGenerator, 9 SerializerProvider provider) throws IOException, JsonProcessingException { 10 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 11 jsonGenerator.writeString(sdf.format(value)); 12 } 13 }); 14 this.setSerializerFactory(factory); 15 } 16 }
配置如下:
<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; }
SpringMVC对日期类型的转换相关推荐
- oracle日期类型格式转换,Oracle日期类型转换格式
将日期型转换成字符串时,可以按新的格式显示. 如格式YYYY-MM-DD HH24:MM:SS表示"年-月-日 小时:分钟:秒".Oracle的日期类型是包含时间在内的. 主要的日 ...
- springMVC注解@initbinder日期类型的属性自动转换
在实际操作中经常会碰到表单中的日期 字符串和Javabean中的日期类型的属性自动转换, 而springMVC默认不支持这个格式的转换,所以必须要手动配置, 自定义数据类型的绑定才能实现这个功能. 一 ...
- 后端的日期类型赋值前端表单_Spring Boot实践--前端字符串日期自动转换成后台date类型。...
简单介绍 在前后台开发的时候:日期格式会转来转去,很麻烦.大致总结如下: 1:后端返回对象:可以使用spring提供的:HttpMessageConverter来自动转换,有很多实现. 比如:Abst ...
- 表单中的日期 字符串和Javabean中的日期类型的属性自动转换
搞了一上午的bug最终还是因为自己springMVC的注解不熟悉的原因,特记录. 在实际操作中经常会碰到表单中的日期 字符串和Javabean中的日期类型的属性自动转换, 而springMVC默认不支 ...
- SpringMVC框架 |自定义类型转换器与日期格式化
文章目录 一.Spring支持的转换器 二.自定义转换器的步骤 第一步:实现Converter接口 第二步:将Converter配置到ConverterService组件中 第三步:将组件声明在ann ...
- excel批量转换日期格式,将yyyymmdd类型日期转换成yyyy-mm-dd等日期类型方法
源数据日期格式:例如: 20160420 20160422 目标日期格式类型: 2016-4-20 2016-4-22 或 2016/04/20 2016/04/22 方法: 一.选中相应数据的单元格 ...
- SpringMVC在使用Jackson2时关于日期类型格式化的问题
*本例程序使用Jackson2.9.0,jackson1.x的处理方式稍稍有些不同. 在基于Spring&SpringMVC的Web项目中,我们常使用Jackson(1.x/2.x)来增加程序 ...
- 字符串类型日期时间转换为Date类型解析转换异常java.text.ParseException: Unparseable date: “2019-09-27T18:31:31+08:00”
字符串类型日期时间转换为Date类型解析转换异常java.text.ParseException: Unparseable date: "2019-09-27T18:31:31+08:00& ...
- js 传入字符串,转换成日期类型,如果转换失败返回null
//传入字符串,转换成日期类型,如果转换失败返回null var strToDate = function(dateStr) {try {if (dateStr instanceof Date) {r ...
最新文章
- OpenCV 笔记(01)— OpenCV 概念、整体架构、各模块主要功能
- Python之pandas,series,可视化
- C++的黑科技 利用一个字符对字符串进行分离
- Textview的3种事件
- Android中保存数据的三种方法
- how to reference the parent form from the WPF control(Control in ElementHost)
- 王者荣耀s12赛季服务器维护,王者荣耀S12赛季延期,这篇攻略让我段位狂涨!
- 什么是软件测试中的黑天鹅
- 创建索引时,键列位置的重要性
- jts116_JTS T 116-2019水运建设工程概算预算编制规定.pdf
- 继续教育计算机组成原理a试卷,计算机组成原理试卷.docx
- 水系图一般在哪里找得到_Nano Energy:铝离子扩层V2O5nH2O用于高性能水系锌离子电池...
- wpa_supplicant
- 快速查询多个圆通快递未签收单号的走件信息
- php校园学校宿舍管理系统 php毕业设计题目课题选题 php毕业设计项目作品源码(3)班主任和宿舍管理员功能
- 大厂程序员都会的分布式RPC框架,直接无私打包分享,手慢无
- Maximum Likelihood (MLE) Maximum a posteriori (MAP)的分別
- 东北大学acm暑期夏令营第七天
- MVC 音乐商店 第 7 部分: 会员资格和授权
- 有容云:微服务容器化的挑战和解决之道
热门文章
- python(20)之读写文件
- java gbk汉字 10进制,用java程序将GBK字符转成UTF-8编码格式
- linux 2.6.35 内核配置 usb,Linux 2.6.24.4移植到S3C2410(nano2410)之:USB
- java 搜索引擎 关键词高亮_和我一起打造个简单搜索之SpringDataElasticSearch关键词高亮(示例代码)...
- C++基础06-类与对象之new和malloc
- mysql添加用户及权限
- 【Python】logging内置模块基本使用
- 如何在视图中启用thymeleaf
- Android中LayoutInflater()方法
- Django REST Framework API Guide 07