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

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

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

嘮嗑部分

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

首先我們來回顧一下常用的幾種傳參方式

1、Params參數(shù)

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

2、Query參數(shù)

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

3、請求體參數(shù)

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

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

下面步入正文。

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

如果使用Get請求,直接使用對象接收,則可以使用@DateTimeFormat注解進行格式化,如:

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

如果使用Post請求,@RequestBody接收請求體參數(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;

擴展:

springboot項目接收一個日期類型參數(shù)

        1. 在Controller的方法參數(shù)中使用@RequestParam注解接收日期參數(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. 在請求體中發(fā)送JSON格式的數(shù)據(jù),并使用@RequestBody注解接收日期類型的字段,例如:

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

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

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

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

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

相關(guān)文章

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

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

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

    Java使用Sharding-JDBC分庫分表進行操作

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

    Netty解決 TCP 粘包拆包的方法

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

    Java高級特性之反射機制實例詳解

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

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

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

    解決swaggerUI頁面沒有顯示Controller方法的坑

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

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

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

    Java中的CompletableFuture異步編程詳解

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

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

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

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

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

最新評論