Spring Boot日期时间如何处理


本文小编为大家详细介绍“SpringBoot日期时间如何处理”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot日期时间如何处理”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。这种情况要和时间作为Json字符串时区别对待,因为前端json转后端pojo底层使用的是Json序列化Jackson工具HttpMessgeConverter);而时间字符串作为普通请求参数传入时,转换用的是Converter,两者在处理方式上是有区别。实现 org.springframework.core.convert.converter.Converter,自定义参数转换器,如下:点评:以上两个bean会注入到spring mvc的参数解析器(好像叫做ParameterConversionService),当传入的字符串要转为LocalDateTime类时,spring会调用该Converter对这个入参进行转换。注意:关于自定义的参数转换器 Converter,这有个坑,若将上面匿名内部类的写法精简成lambda表达式的方式:当再次启动项目时会出现异常:Caused by: java.lang.IllegalArgumentException: Unable to determine source type and target type for your Converter [com.example.demo126.config.MappingConverterAdapter$$Lambda$522/817994751]; does the class parameterize those types?是由于:web项目启动注册requestMappingHandlerAdapter的时候会初始化WebBindingInitializerConfigurableWebBindingInitializer需要FormattingConversionService,FormattingConversionService会将所有的Converter添加进来,添加的时候需要获取泛型信息:添加Converter.class 一般是通过接口获取两个泛型的具体类型Lambda表达式的接口是Converter,并不能得到具体的类型,既然如此,那解决办法:最简单的方法就是不适用Lambda表达式,还使用匿名内部类,这样就不会存在上述问题就是等requestMappingHandlerAdapterbean注册完成之后再添加自己的converter就不会注免费云主机域名册到FormattingConversionService中还可以对前端传递的string进行正则匹配,如yyyy-MM-dd HH:mm:ss、yyyy-MM-dd、 HH:mm:ss等,进行匹配。以适应多种场景。注:这里在匹配Date日期格式时直接使用了 hutool 为我们已经写好的解析工具类,这里就不重复造轮子了,下面的方法同样使用了该工具类,想要在自己的项目中使用该工具类也很简单,在项目pom文件中引入hutool的依赖就可以了,如下:使用spring自带注解@DateTimeFormat(pattern = "yyyy-MM-dd"),如下:如果使用了自定义参数转化器,Spring会优先使用该方式进行处理,即Spring注解不生效。从名字就可以看出来,这是在controller做环切(这里面还可以全局异常捕获),在参数进入handler之前进行转换;转换为我们相应的对象。请求类型为:post,content-type=application/json, 后台用@RequestBody接收,默认接收及返回值格式为: yyyy-MM-dd HH:mm:ss在application.propertities文件中增加如下内容:spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8支持(content-type=application/json)请求中格式为 yyyy-MM-dd HH:mm:ss的字符串,后台用@RequestBody接收,及返回值date转为yyyy-MM-dd HH:mm:ss格式string;不支持(content-type=application/json)请求中yyyy-MM-dd等类型的字符串转为date; 不支持java8日期api;读到这里,这篇“SpringBoot日期时间如何处理”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注百云主机行业资讯频道。

相关推荐: 如何用C语言实现凯撒密码加密解密

本篇内容主要讲解“如何用C语言实现凯撒密码加密解密”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用C语言实现凯撒密码加密解密”吧!又叫循环移位密码.它的加密方法是将明文中的每个字母用此字符在字母表中后面第k个字…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/11 09:02
下一篇 03/11 09:02

相关推荐