Spring项目Date类型处理
一、MySQL的五种日期和时间类型
MySQL中有多种表示日期和时间的数据类型。其中YEAR表示年份,DATE表示日期,TIME表示时间,``DATETIME和TIMESTAMP`表示日期和时间。它们的对比如下:
| 名称 | 字节数 | 取值范围 |
|---|---|---|
| YEAR | 1 | 1901——2155 |
| DATE | 4 | 1000-01-01——9999-12-31 |
| TIME | 3 | -838:59:59——838:59:59 |
| DATETIME | 8 | 1000-01-01 00:00:00——9999-12-31 23:59:59 |
| TIMESTAMP | 4 | 19700101080001——20380119111407 |
二、@JsonFormat时间格式化注解使用
Maven依赖:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.2</version>
</dependency> spring-boot-stater-web中已经封装了该包,可直接使用。
- 全局处理时间格式化
application.properties中时间格式化修改为如下:
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8
设置过后,配置文件设置后实体类中的所有Date类型会以yyyy-MM-dd HH:mm:ss形式接收参数,由于与表中的其他Date字段要求不一致,在不一致的date类型属性上加@JsonFormat注解用以覆盖application.properties中的时间格式设置。
- 特殊处理时间格式化
//项目要求`time(HH:mm)`
@JsonFormat(pattern = "HH:mm",timezone="GMT+8")
private Date startTime;
//项目要求`date(yyyy-MM-dd)`
@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
private Date completionDate;
//项目要求`datetime(yyyy-MM-dd HH:mm)`
@JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone="GMT+8")
private Date realWorkEndTime; 二、时间问题处理演示
以DailyWorkContent实体类为例,作为演示。

swagger中发起存入请求。

swagger中查询刚刚插入的信息


京公网安备 11010502036488号