SpringBoot接收LocalDateTime参数的方式

 更新时间:2024年08月20日 15:04:32   作者:小小李程序员  
这篇文章主要介绍了SpringBoot接收LocalDateTime参数的方式,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

一、通过@RequestBody接收

方式1:实体类上加上 @JsonFormat,并通过 pattern 属性指定时间格式

public class Time {
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    LocalDateTime localDateTime;
    @JsonFormat(pattern = "yyyy-MM-dd")
    LocalDate localDate;
    @JsonFormat(pattern = "HH:mm:ss")
    LocalTime localTime;
}

方式二:配置Jackson时间序列化,创建如下配置类即可

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
@Configuration
public class JacksonConfig {
    @Bean
    public ObjectMapper 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")));
        //  时间反序列化
        javaTimeModule.addDeserializer(LocalDateTime.class,new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
        javaTimeModule.addDeserializer(LocalDate.class,new LocalDateDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
        javaTimeModule.addDeserializer(LocalTime.class,new LocalTimeDeserializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.registerModule(javaTimeModule);
        return objectMapper;
    }
}

二、通过@RequestParam接收

方式1:在参数前面加上 @DateTimeFormat 注解,通过 pattern 属性指定时间格式

    @GetMapping("/param/local")
    public void testLocalDateTime(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime localDateTime,
                                  @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate localDate,
                                  @RequestParam @DateTimeFormat(pattern = "HH:mm:ss") LocalTime localTime) {
    }

方式2:配置时间格式转换器,创建如下配置类即可

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.converter.Converter;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
/**
 * 日期格式转换器配置
 */
@Configuration
public class DateConverterConfig {
    /**
     * LocalDateTime格式转换器
     */
    @Bean
    public Converter<String, LocalDateTime> localDateTimeConverter() {
        return new Converter<String, LocalDateTime>() {
            @Override
            public LocalDateTime convert(String timeStr) {
                return LocalDateTime.parse(timeStr,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
            }
        };
    }
    /**
     * LocalDate格式转换器
     */
    @Bean
    public Converter<String, LocalDate> localDateConverter() {
        return new Converter<String, LocalDate>() {
            @Override
            public LocalDate convert(String timeStr) {
                return LocalDate.parse(timeStr,DateTimeFormatter.ofPattern("yyyy-MM-dd"));
            }
        };
    }
    /**
     * LocalTime格式转换器
     */
    @Bean
    public Converter<String, LocalTime> localTimeConverter() {
        return new Converter<String, LocalTime>() {
            @Override
            public LocalTime convert(String timeStr) {
                return LocalTime.parse(timeStr,DateTimeFormatter.ofPattern("HH:mm:ss"));
            }
        };
    }
}

到此这篇关于SpringBoot接收LocalDateTime参数的文章就介绍到这了,更多相关SpringBoot LocalDateTime参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Eclipse中导入Maven Web项目并配置其在Tomcat中运行图文详解

    Eclipse中导入Maven Web项目并配置其在Tomcat中运行图文详解

    这篇文章主要介绍了Eclipse中导入Maven Web项目并配置其在Tomcat中运行图文详解,需要的朋友可以参考下
    2017-12-12
  • 通过Spring Boot整合Mybatis分析自动配置详解

    通过Spring Boot整合Mybatis分析自动配置详解

    这篇文章主要给大家介绍了关于如何通过Spring Boot整合Mybatis分析自动配置的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • java中如何使用MD5进行加密

    java中如何使用MD5进行加密

    这篇文章主要介绍了java实现md5加密示例,在各种应用系统的开发中,经常需要存储用户信息,很多地方都要存储用户密码,有需要的小伙伴可以参考下。
    2016-11-11
  • WebService教程详解(二)

    WebService教程详解(二)

    这篇文章主要介绍了WebService教程详解(二) 的相关资料,需要的朋友可以参考下
    2016-03-03
  • Spring Security入门demo案例

    Spring Security入门demo案例

    Spring Security是一个高度自定义的安全框架,本文主要介绍了Spring Security入门,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • java Swing实现五子棋游戏

    java Swing实现五子棋游戏

    这篇文章主要为大家详细介绍了java Swing实现五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • 通过Java实现设置Word文档页边距的方法详解

    通过Java实现设置Word文档页边距的方法详解

    页边距是指页面的边线到文字的距离。通常可在页边距内部的可打印区域中插入文字和图形等。今天这篇文章将为您展示如何通过编程方式,设置Word 文档页边距,感兴趣的可以了解一下
    2023-02-02
  • 深入JVM剖析Java的线程堆栈

    深入JVM剖析Java的线程堆栈

    这篇文章主要介绍了深入JVM剖析Java的线程堆栈,Java中的堆内存和堆栈原理的应用等知识是深入学习Java的重点,需要的朋友可以参考下
    2015-07-07
  • MapStruct内部错误:NullPointerException的解决方案

    MapStruct内部错误:NullPointerException的解决方案

    在Java开发中,MapStruct是一个非常流行的对象映射工具,它通过注解处理器在编译时生成映射代码,极大地简化了对象之间的转换操作,本文将详细分析一个常见的MapStruct内部错误——NullPointerException,并提供一系列解决方案,需要的朋友可以参考下
    2025-02-02
  • 从入门到超神进阶的Netty群聊系统

    从入门到超神进阶的Netty群聊系统

    本篇文章基于Netty做一个聊天室案例加强Netty的熟练度,案例的效果是服务端可以广播某客户端的消息给所有客户端。每个客户端监听键盘输入来获取消息,然后发送给服务端
    2021-08-08

最新评论