在做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对日期类型的转换相关推荐

  1. oracle日期类型格式转换,Oracle日期类型转换格式

    将日期型转换成字符串时,可以按新的格式显示. 如格式YYYY-MM-DD HH24:MM:SS表示"年-月-日 小时:分钟:秒".Oracle的日期类型是包含时间在内的. 主要的日 ...

  2. springMVC注解@initbinder日期类型的属性自动转换

    在实际操作中经常会碰到表单中的日期 字符串和Javabean中的日期类型的属性自动转换, 而springMVC默认不支持这个格式的转换,所以必须要手动配置, 自定义数据类型的绑定才能实现这个功能. 一 ...

  3. 后端的日期类型赋值前端表单_Spring Boot实践--前端字符串日期自动转换成后台date类型。...

    简单介绍 在前后台开发的时候:日期格式会转来转去,很麻烦.大致总结如下: 1:后端返回对象:可以使用spring提供的:HttpMessageConverter来自动转换,有很多实现. 比如:Abst ...

  4. 表单中的日期 字符串和Javabean中的日期类型的属性自动转换

    搞了一上午的bug最终还是因为自己springMVC的注解不熟悉的原因,特记录. 在实际操作中经常会碰到表单中的日期 字符串和Javabean中的日期类型的属性自动转换, 而springMVC默认不支 ...

  5. SpringMVC框架 |自定义类型转换器与日期格式化

    文章目录 一.Spring支持的转换器 二.自定义转换器的步骤 第一步:实现Converter接口 第二步:将Converter配置到ConverterService组件中 第三步:将组件声明在ann ...

  6. excel批量转换日期格式,将yyyymmdd类型日期转换成yyyy-mm-dd等日期类型方法

    源数据日期格式:例如: 20160420 20160422 目标日期格式类型: 2016-4-20 2016-4-22 或 2016/04/20 2016/04/22 方法: 一.选中相应数据的单元格 ...

  7. SpringMVC在使用Jackson2时关于日期类型格式化的问题

    *本例程序使用Jackson2.9.0,jackson1.x的处理方式稍稍有些不同. 在基于Spring&SpringMVC的Web项目中,我们常使用Jackson(1.x/2.x)来增加程序 ...

  8. 字符串类型日期时间转换为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& ...

  9. js 传入字符串,转换成日期类型,如果转换失败返回null

    //传入字符串,转换成日期类型,如果转换失败返回null var strToDate = function(dateStr) {try {if (dateStr instanceof Date) {r ...

最新文章

  1. OpenCV 笔记(01)— OpenCV 概念、整体架构、各模块主要功能
  2. Python之pandas,series,可视化
  3. C++的黑科技 利用一个字符对字符串进行分离
  4. Textview的3种事件
  5. Android中保存数据的三种方法
  6. how to reference the parent form from the WPF control(Control in ElementHost)
  7. 王者荣耀s12赛季服务器维护,王者荣耀S12赛季延期,这篇攻略让我段位狂涨!
  8. 什么是软件测试中的黑天鹅
  9. 创建索引时,键列位置的重要性
  10. jts116_JTS T 116-2019水运建设工程概算预算编制规定.pdf
  11. 继续教育计算机组成原理a试卷,计算机组成原理试卷.docx
  12. 水系图一般在哪里找得到_Nano Energy:铝离子扩层V2O5nH2O用于高性能水系锌离子电池...
  13. wpa_supplicant
  14. 快速查询多个圆通快递未签收单号的走件信息
  15. php校园学校宿舍管理系统 php毕业设计题目课题选题 php毕业设计项目作品源码(3)班主任和宿舍管理员功能
  16. 大厂程序员都会的分布式RPC框架,直接无私打包分享,手慢无
  17. Maximum Likelihood (MLE) Maximum a posteriori (MAP)的分別
  18. 东北大学acm暑期夏令营第七天
  19. MVC 音乐商店 第 7 部分: 会员资格和授权
  20. 有容云:微服务容器化的挑战和解决之道

热门文章

  1. python(20)之读写文件
  2. java gbk汉字 10进制,用java程序将GBK字符转成UTF-8编码格式
  3. linux 2.6.35 内核配置 usb,Linux 2.6.24.4移植到S3C2410(nano2410)之:USB
  4. java 搜索引擎 关键词高亮_和我一起打造个简单搜索之SpringDataElasticSearch关键词高亮(示例代码)...
  5. C++基础06-类与对象之new和malloc
  6. mysql添加用户及权限
  7. 【Python】logging内置模块基本使用
  8. 如何在视图中启用thymeleaf
  9. Android中LayoutInflater()方法
  10. Django REST Framework API Guide 07