当前位置: 首页 > news >正文

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 {@Beanpublic 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格式转换器*/@Beanpublic Converter<String, LocalDateTime> localDateTimeConverter() {return new Converter<String, LocalDateTime>() {@Overridepublic LocalDateTime convert(String timeStr) {return LocalDateTime.parse(timeStr,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));}};}/*** LocalDate格式转换器*/@Beanpublic Converter<String, LocalDate> localDateConverter() {return new Converter<String, LocalDate>() {@Overridepublic LocalDate convert(String timeStr) {return LocalDate.parse(timeStr,DateTimeFormatter.ofPattern("yyyy-MM-dd"));}};}/*** LocalTime格式转换器*/@Beanpublic Converter<String, LocalTime> localTimeConverter() {return new Converter<String, LocalTime>() {@Overridepublic LocalTime convert(String timeStr) {return LocalTime.parse(timeStr,DateTimeFormatter.ofPattern("HH:mm:ss"));}};}
}

http://www.lryc.cn/news/473455.html

相关文章:

  • Typora配置GitHub图床--结合PicGo
  • 【书生.浦语实战营】——入门岛
  • WPF+MVVM案例实战(十四)- 封装一个自定义消息弹窗控件(下)
  • 嵌入式——STM32外设应用
  • HCIA(ACL)
  • react基础之reactHooks
  • Java基础0-Java概览
  • SW绘制曲面
  • css知识点梳理2
  • 攻防世界 MISC miao~详解
  • 使用 `tracert [options] <目标地址>` 命令的详细介绍
  • 闲一品交易平台:SpringBoot技术的新境界
  • 【深入浅出】深入浅出transformer(附面试题)
  • 苹果重大更新,macOS与iOS同时推出更新!功能真好用
  • 刘艳兵-DBA016-在您的数据库中,SALES表存在于SH用户中,并且启用了统一审计。作为DBA,您成功执行了以下指令:
  • 力扣题目解析--整数反转
  • 净水前置需要安装吗?
  • 在深度学习研究方向有哪些创新点
  • YOLOv11改进策略【卷积层】| 2024最新轻量级自适应提取模块 LAE 即插即用 保留局部信息和全局信息
  • 工作转型与个人突破提升:如何在社会浪潮中激流勇进
  • mongodb:增删改查和特殊查询符号手册
  • 你的Mac book多久没有清洁键盘屏幕了,Mac清洁好帮手来了
  • ANA基因组数据库(ANAgdb)
  • leetcode 704 二分查找
  • Vue学习笔记(十一)
  • ABAP进阶学习1:动态内表1-通过系统表LVC_T_FCAT类型定义内表
  • 【Vispy库】一个用于高性能交互式2D/3D数据可视化库 Python库
  • 为什么 C 语言数组是从 0 开始计数的?
  • matlab线性度计算程序
  • 为什么NMOS管比PMOS管更受欢迎?