评论

收藏

[Java] Spring Boot LocalDateTime格式化处理的示例详解

编程语言 编程语言 发布于:2021-10-08 12:20 | 阅读数:602 | 评论:0

这篇文章主要介绍了Spring Boot LocalDateTime格式化处理的示例详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
jdk8的新特性中time api,其包括clock、duration、instant、localdate、localtime、localdatetime、zoneddatetime,在这里就不一一介绍了,相信很多人都会使用其代替date及calendar来处理日期时间,下面介绍spring boot处理localdatetime格式。
controller接收localdatetime参数
在spring中,接收localdatetime日期时间数据时,只需要使用@datetimeformat注解即可。@datetimeformat可以注解在字段、参数以及方法上,如果接收的为dto,则需要将@datetimeformat注解在dto中的字段上。
需要注意的是pattern是全匹配,参数格式必须要和定义的一样。
@getmapping("date")
public object date(@requestparam @datetimeformat(pattern = "yyyy-mm-dd hh:mm:ss") localdatetime date) {
 return date;
}
 
@getmapping("date2")
public object date(@requestparam @datetimeformat(pattern = "yyyy-mm-dd") localdate date) {
 return date;
}
responsebody格式化localdatetime
spring默认使用使用jackson来进行json格式转换,我们只需要使用@bean注解创建一个objectmapperbean,并将javatimemodule注册到objectmapper中即可,spring会使用该bean创建mappingjackson2httpmessageconverter进行json格式转换。
这里需要加入jackson的jsr310扩展包。
<dependency>
 <groupid>com.fasterxml.jackson.datatype</groupid>
 <artifactid>jackson-datatype-jsr310</artifactid>
 <version>2.8.9</version>
</dependency>
@bean(name = "mapperobject")
public objectmapper getobjectmapper() {
 objectmapper om = new objectmapper();
 javatimemodule javatimemodule = new javatimemodule();
 javatimemodule.addserializer(localdatetime.class, new localdatetimeserializer(datetimeformatter.ofpattern("yyyy-mm-dd hh:mm:ss")));
 javatimemodule.addserializer(localdate.class, new localdateserializer(datetimeformatter.ofpattern("yyyy-mm-dd")));
 javatimemodule.addserializer(localtime.class, new localtimeserializer(datetimeformatter.ofpattern("hh:mm:ss")));
 om.registermodule(javatimemodule);
 return om;
}
另外,如果持久层框架使用mybatis,同样需要加入mybatis的jsr310 扩展包。
<dependency>
 <groupid>org.mybatis</groupid>
 <artifactid>mybatis-typehandlers-jsr310</artifactid>
 <version>1.0.2</version>
</dependency>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持CodeAE代码之家
原文链接:https://blog.csdn.net/junlovejava/article/details/78112240

关注下面的标签,发现更多相似文章