jdk8的新特性中time api,其包括clock、duration、instant、localdate、localtime、localdatetime、zoneddatetime,在這里就不一一介紹了,相信很多人都會使用其代替date及calendar來處理日期時間,下面介紹spring boot處理localdatetime格式。
controller接收localdatetime參數(shù)
在spring中,接收localdatetime日期時間數(shù)據(jù)時,只需要使用@datetimeformat注解即可。@datetimeformat可以注解在字段、參數(shù)以及方法上,如果接收的為dto,則需要將@datetimeformat注解在dto中的字段上。
需要注意的是pattern是全匹配,參數(shù)格式必須要和定義的一樣。
1
2
3
4
5
6
7
8
9
|
@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格式轉(zhuǎn)換,我們只需要使用@bean注解創(chuàng)建一個objectmapperbean,并將javatimemodule注冊到objectmapper中即可,spring會使用該bean創(chuàng)建mappingjackson2httpmessageconverter進行json格式轉(zhuǎn)換。
這里需要加入jackson的jsr310擴展包。
1
2
3
4
5
|
<dependency> <groupid>com.fasterxml.jackson.datatype</groupid> <artifactid>jackson-datatype-jsr310</artifactid> <version> 2.8 . 9 </version> </dependency> |
1
2
3
4
5
6
7
8
9
10
|
@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 擴展包。
1
2
3
4
5
|
<dependency> <groupid>org.mybatis</groupid> <artifactid>mybatis-typehandlers-jsr310</artifactid> <version> 1.0 . 2 </version> </dependency> |
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://blog.csdn.net/junlovejava/article/details/78112240