阅读量:1
数据库中Datetime类型字段可以对应Java实体类中的Date数据类型或LocalDateTime数据类型。但这两种数据类型直接却有着很大的区别,被用在不同的应用场景中。(一般推荐使用LocalDateTime,有更多的灵活性和功能)
private Date createTime; private Date updateTime; // 或者 private LocalDateTime createTime; private LocalDateTime updateTime;
一、Data数据类型与LocalDateTime数据类型的区别
Date数据类型属于java.util包,是Java的一个日期和时间类,它代表特定时刻的时间戳,存储的是自1970年1月1日以来的毫秒数,但不包含时区信息,对时区不敏感。且Date数据类型是可变的,可以通过setTime(long time)来设置时间戳。
LocalDateTime数据类型属于java.time包,是Java 8引入的新日期和时间API的一部分,它代表了一个日期和时间,但没有时区信息,若要处理时区信息可以使用ZonedDateTime类。而LocalDateTime数据类型不可变,一旦创建LocalDateTime对象,它的值将不会改变。若想要修改值,只能创建一个新的LocalDateTime对象。
LocalDateTime的基本使用可以看下面这篇文章:
二、对时间类型数据输出信息的格式化
这里需要引入jackson依赖来format时间的数据类型:
<!-- jackson --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.15.3</version> </dependency>
方法一: (全局配置)
在springBoot的配置文件中添加以下代码可以实现全局配置:
# application.properties的配置如下: spring.jackson.date-format=yyyy-MM-dd HH:mm:ss # 时间格式 spring.jackson.time-zone=GMT+8 # 时区
# application.yaml的配置如下: spring: jackson: date-format: yyyy-MM-dd HH:mm:ss # 时间格式 time-zone: GMT+8 # 时区
方法二: (对字段分别设置)
通过对字段添加@JsonFormat注解来设置该字段的时间格式,比较繁琐,但更加灵活。
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") private LocalDateTime startTime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") private LocalDateTime endTime;
三、格式
yyyy | 年 |
MM | 月 |
dd | 日 |
HH | 时 |
mm | 分 |
ss | 秒 |