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

SpringBoot 时间格式校验问题

1. 背景

开发过程中,时间格式并非都是yyyy-MM-dd HH:mm:ss,有时候希望传入的参数为yyyy-MM-dd,或HH:mm:ss,对应着pgsql中的类型分别为timestamp, date,time。但是使用mybatis generator自动生成的文件中这这种类型都用Date对象,如果入参也是使用Date对象作为输入类型,yyyy-MM-dd HH:mm:ss的格式时能正常解析的,但是yyyy-MM-dd,或HH:mm:ss就会解析失败。

2. 问题

当前端输入的时间格式为yyyy-MM-dd,或HH:mm:ss,后端应该如何处理?

3. 解决方法

(1) 如果输入的时间类型为yyyy-MM-dd,则使用LocalDate类型;

(2) 如果输入的时间类型为HH:mm:ss,则使用LocalTime类型;

(3) 如果是yyyy-MM-dd HH:mm:ss,则使用Date或LocalDateTime(LocalDateTime格式还没有验证)

4. 代码


import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.Date;/*** <p>* 广播播放配置信息* </p>** @author mip* @since 2024-08-19*/
@Getter
@Setter
@TableName("mip_audio_config")
@ApiModel(value = "MipAudioConfig对象", description = "广播播放配置信息")
public class MipAudioConfig implements Serializable {@ApiModelProperty("开始播放日期")@JsonFormat(pattern = "yyyy-MM-dd",timezone ="GMT+8" )private LocalDate startDate;@ApiModelProperty("结束播放日期")@JsonFormat(pattern = "yyyy-MM-dd",timezone ="GMT+8" )private LocalDate endDate;@ApiModelProperty("播放开始时间")@JsonFormat(pattern = "HH:mm:ss",timezone ="GMT+8" )private LocalTime startTime;@ApiModelProperty("播放结束时间")@JsonFormat(pattern = "HH:mm:ss",timezone ="GMT+8" )private LocalTime endTime;@ApiModelProperty("创建时间")@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone ="GMT+8" )private Date createTime;}

5. 参考文献

SpringBoot日期时间出入参格式化-1:全注解方式参数处理_springboot报时间参数注解-CSDN博客

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MybatisPlus 快速入门
  • 基于JAVA+SpringBoot+Vue的工程教育认证的计算机课程管理平台
  • mac 电脑 git credential osxkeychain问题
  • 代码随想录算法训练营第二十二天| 491. 递增子序列、46. 全排列、47. 全排列Ⅱ
  • HTTP1.0 到 HTTP3.0 的优化
  • Linux常用命令合集
  • 免费的 Mac 应用清理工具Pearcleaner v3.8.6
  • 透视表支持自定义聚合公式,新增字体管理功能,DataEase开源BI工具v2.10 LTS版本发布
  • FastAPI 深度指南:使用依赖注入处理分页和过滤逻辑
  • 深度学习的模型知识点介绍和总结
  • Anolis 8 NVME over TCP 配置使用
  • [数据集][目标检测]打电话检测数据集VOC+YOLO格式8985张1类别
  • 数据分析-埋点
  • 【Python报错已解决】No Python at ‘C:Users…Python Python39python.exe’
  • jdbc-day03
  • angular学习第一篇-----环境搭建
  • bearychat的java client
  • C++类中的特殊成员函数
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • Laravel 中的一个后期静态绑定
  • React-生命周期杂记
  • React中的“虫洞”——Context
  • SQLServer之创建数据库快照
  • VuePress 静态网站生成
  • vue-router的history模式发布配置
  • Web标准制定过程
  • 分类模型——Logistics Regression
  • 开发基于以太坊智能合约的DApp
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 使用 @font-face
  • 用Python写一份独特的元宵节祝福
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​渐进式Web应用PWA的未来
  • ‌U盘闪一下就没了?‌如何有效恢复数据
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (1)Nginx简介和安装教程
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (4)Elastix图像配准:3D图像
  • (HAL库版)freeRTOS移植STMF103
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (二)pulsar安装在独立的docker中,python测试
  • (七)Activiti-modeler中文支持
  • (算法)大数的进制转换
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (一)为什么要选择C++
  • (转)Google的Objective-C编码规范
  • (转)setTimeout 和 setInterval 的区别
  • .htaccess配置重写url引擎
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET 分布式技术比较
  • .NET 事件模型教程(二)
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)