参考链接:
https://blog.csdn.net/qq_28483283/article/details/81873054
Date
名称 解释
显示格式 YYYY-MM-DD
应用场景 当业务需求中只需要精确到天时,可以用这个时间格式
后台取值 @JSONField(format=”yyyy-MM-dd”)
DateTime
名称 解释
显示格式 YYYY-MM-DD HH:mm:ss
应用场景 当业务需求中需要精确到秒时,可以用这个时间格式
后台取值 @JSONField(format=”yyyy-MM-dd HH:mm:ss”)
TimeStamp
名称 解释
显示格式 YYYY-MM-DD HH:mm:ss
应用场景 当业务需求中需要精确到秒或者毫秒时,或者该系统用于不同时区,可以用这个时间格式
后台取值 @JSONField(format=”yyyy-MM-dd HH:mm:ss:SSS”)(这里只会精确到秒)
Time
名称 解释
显示格式 HH:mm:ss
显示范围 00:00:00 到 23:59:59
应用场景 当业务需求中只需要每天的时间,可以用这个时间格式
后台取值 @JSONField(format=”HH:mm”)(这里是只精确到分,数据库存的也就是只精确到分,比如 09:36:00,如果需要精确到秒。需要使用@JSONField(format=”HH:mm:ss”))
Date,DateTime,TimeStamp和Time 比较
Date,DateTime,Time 这里就不比较了,三者显示以及精度都不一样,需要大家根据具体需求,具体选择。
那么,DateTime和TimeStamp都是年月日时分秒,为什么还有这两个类型呢?
1、精度:DateTime和TimeStamp都可以精确到毫秒(我目前使用的5.5的mysql,所以只能精确到秒,据说高版本的可以用TIMESTAMP(3)与 DATETIME(3)精确到毫秒。),但是用的很少,一般精确到毫秒都是用Timestamp,另外关于Timestamp的10位和13位的区别请参考我的另一篇文章java时间戳 10位和13位分别是怎么来的?
2、DateTime和TimeStamp最大的区别只是用的场景不同,如果你的应用 是用于不同时区(就是国内和国外同时使用),这时候如果用dateTime就会出现各种各样的问题,但是如果使用TimeStamp就不会出现这种时差的问题。
误区:之前我也也为datetime和TimeStamp是一样的,因为他们在数据库存的时间都是YYYY-MM-DD HH:mm:ss格式的,但是TimeStamp类型存的是10位或者13位的时间戳,不要被表现骗了,使用