欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot接收日期類(lèi)型參數(shù)的操作方法

 更新時(shí)間:2024年02月28日 09:26:40   作者:HelloWorld102  
如果使用Get請(qǐng)求,直接使用對(duì)象接收,則可以使用@DateTimeFormat注解進(jìn)行格式化,本文重點(diǎn)給大家介紹springboot接收日期類(lèi)型參數(shù)的方法,感興趣的朋友一起看看吧

嘮嗑部分

在做Java開(kāi)發(fā)時(shí),肯定會(huì)碰到傳遞時(shí)間參數(shù)的情況吧,比如用戶的出生日期、活動(dòng)的開(kāi)始,結(jié)束日期等等,這些參數(shù)往往是由前端傳遞過(guò)來(lái)的,那么在SpringBoot項(xiàng)目中,該如何正確的接收日期參數(shù)呢,這便是我們今日所說(shuō)的內(nèi)容

首先我們來(lái)回顧一下常用的幾種傳參方式

1、Params參數(shù)

Params參數(shù)也稱路徑傳參,參數(shù)是路徑的一部分,如:http://127.0.0.1:8888/date/receiveParamOfParams/2023-05-22

2、Query參數(shù)

Query參數(shù)通常使用?進(jìn)行傳遞,多個(gè)參數(shù)使用&分割,如:http://127.0.0.1:8888/date/receiveParamOfQuery?bothDate=2023-05-22

3、請(qǐng)求體參數(shù)

請(qǐng)求體參數(shù)也是我們常用的json傳參

那么為什么要回顧傳參方式呢,難道說(shuō)傳參方式不同,接收日期參數(shù)的方式也不一樣嗎?是的沒(méi)錯(cuò)

下面步入正文。

springboot接收日期類(lèi)型參數(shù)

如果使用Get請(qǐng)求,直接使用對(duì)象接收,則可以使用@DateTimeFormat注解進(jìn)行格式化,如:

@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startBuyDate;

如果使用Post請(qǐng)求,@RequestBody接收請(qǐng)求體參數(shù),默認(rèn)解析日期格式為yyyy-MM-dd HH:mm:ss , 如果需要接收其他格式的參數(shù),則可以使用@JsonFormat注解,如:

@JsonFormat(timezone="GMT+8",pattern="yyyy-MM-dd")
private Date buyDate;

也可以使用java8新增的LocalDate自定義序列化,如:

@Configuration
@ConditionalOnClass(ObjectMapper.class)
@AutoConfigureBefore(JacksonAutoConfiguration.class)
public class JacksonConfig {
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer customizer() {
        return builder -> {
            builder.locale(Locale.CHINA);
            builder.timeZone(TimeZone.getTimeZone(ZoneId.systemDefault()));
            builder.simpleDateFormat(DatePattern.NORM_DATETIME_PATTERN);
            builder.modules(new TimeModule());
        };
    }
}
public class TimeModule extends SimpleModule {
    public TimeModule() {
        super(PackageVersion.VERSION);
        this.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)));
        this.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)));
        this.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN)));
        this.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)));
        this.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)));
        this.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN)));
    }
}
//yyyy-MM-dd HH:mm:ss
private LocalDateTime buyDateTime;
//yyyy-MM-dd
private LocalDate buyDate;
//HH:mm:ss
private LocalTime buyTime;

擴(kuò)展:

springboot項(xiàng)目接收一個(gè)日期類(lèi)型參數(shù)

        1. 在Controller的方法參數(shù)中使用@RequestParam注解接收日期參數(shù),可以通過(guò)指定日期格式實(shí)現(xiàn),例如:

@GetMapping("/api/date") public String getDate(@RequestParam("date") @DateTimeFormat(pattern = "yyyy-MM-dd") Date date) { // ... }

        2.使用@PathVariable注解接收日期參數(shù),例如

@GetMapping("/api/date/{date}")
public String getDate(@PathVariable("date") @DateTimeFormat(pattern = "yyyy-MM-dd") Date date) {
    // ...
}

        3. 在請(qǐng)求體中發(fā)送JSON格式的數(shù)據(jù),并使用@RequestBody注解接收日期類(lèi)型的字段,例如:

@PostMapping("/api/date")
public String getDate(@RequestBody RequestBodyDto requestBodyDto) {
    Date date = requestBodyDto.getDate();
    // ...
}

        其中,RequestBodyDto為請(qǐng)求體對(duì)應(yīng)的Java對(duì)象,可以使用@JsonFormat注解指定日期格式,例如:

public class RequestBodyDto {
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date date;
    // getter/setter
}

        無(wú)論使用哪種方式接收日期參數(shù),都需要注意指定日期格式,以避免類(lèi)型轉(zhuǎn)換錯(cuò)誤和日期格式化異常。

到此這篇關(guān)于springboot接收日期類(lèi)型參數(shù)的文章就介紹到這了,更多相關(guān)springboot日期類(lèi)型參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mybatis?collection和association的區(qū)別解析

    mybatis?collection和association的區(qū)別解析

    這篇文章主要介紹了mybatis?collection解析以及和association的區(qū)別,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Java使用Sharding-JDBC分庫(kù)分表進(jìn)行操作

    Java使用Sharding-JDBC分庫(kù)分表進(jìn)行操作

    Sharding-JDBC 是無(wú)侵入式的 MySQL 分庫(kù)分表操作工具,本文主要介紹了Java使用Sharding-JDBC分庫(kù)分表進(jìn)行操作,感興趣的可以了解一下
    2021-08-08
  • Netty解決 TCP 粘包拆包的方法

    Netty解決 TCP 粘包拆包的方法

    處理粘包的唯一方法就是制定應(yīng)用層的數(shù)據(jù)通訊協(xié)議,通過(guò)協(xié)議來(lái)規(guī)范現(xiàn)有接收的數(shù)據(jù)是否滿足消息數(shù)據(jù)的需要,本文給大家介紹Netty解決 TCP 粘包拆包的方法,需要的朋友一起看看吧
    2021-07-07
  • Java高級(jí)特性之反射機(jī)制實(shí)例詳解

    Java高級(jí)特性之反射機(jī)制實(shí)例詳解

    這篇文章主要介紹了Java高級(jí)特性之反射機(jī)制,結(jié)合實(shí)例形式詳細(xì)分析了Java反射機(jī)制原理、功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-08-08
  • 使用IntelliJ IDEA調(diào)式Stream流的方法步驟

    使用IntelliJ IDEA調(diào)式Stream流的方法步驟

    本文主要介紹了使用IntelliJ IDEA調(diào)式Stream流的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 解決swaggerUI頁(yè)面沒(méi)有顯示Controller方法的坑

    解決swaggerUI頁(yè)面沒(méi)有顯示Controller方法的坑

    這篇文章主要介紹了解決swaggerUI頁(yè)面沒(méi)有顯示Controller方法的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 6種SpringBoot中自定義starter的方式介紹

    6種SpringBoot中自定義starter的方式介紹

    在SpringBoot生態(tài)中,starter是一種特殊的依賴,它能夠自動(dòng)裝配相關(guān)組件,簡(jiǎn)化項(xiàng)目配置,本文將詳細(xì)介紹6種不同的自定義starter開(kāi)發(fā)方法,有需要的可以了解下
    2025-04-04
  • Java中的CompletableFuture異步編程詳解

    Java中的CompletableFuture異步編程詳解

    這篇文章主要介紹了Java中的CompletableFuture異步編程詳解,只要提到多線程來(lái)優(yōu)化性能,那么必定離不開(kāi)異步化,異步化的出現(xiàn)才是多線程優(yōu)化性能這個(gè)核心方案的基礎(chǔ),需要的朋友可以參考下
    2023-12-12
  • Java中Lambda表達(dá)式使用詳細(xì)解讀

    Java中Lambda表達(dá)式使用詳細(xì)解讀

    這篇文章主要介紹了Java中Lambda表達(dá)式使用及詳解,lambda運(yùn)行將函數(shù)作為一個(gè)方法的參數(shù),也就是函數(shù)作為參數(shù)傳遞到方法中,使用lambda表達(dá)式可以讓代碼更加簡(jiǎn)潔,需要的朋友可以參考下
    2023-04-04
  • Java 批量文件壓縮導(dǎo)出并下載到本地示例代碼

    Java 批量文件壓縮導(dǎo)出并下載到本地示例代碼

    這篇文章主要介紹了Java 批量文件壓縮導(dǎo)出并下載到本地示例代碼,實(shí)現(xiàn)思路首先要把zip流寫(xiě)入到http響應(yīng)輸出流中,再把excel的流寫(xiě)入zip流中,具體示例代碼,大家通過(guò)本文學(xué)習(xí)吧
    2017-12-12

最新評(píng)論