1.JPA
转化 OffsetDateTime 和 ZoneDateTime
不考虑时区 只是把字面量放入 并指定时区 UTC
Date 会根据时区 来转化
时区设置为 +08:00 那么 它会先 把字面量的时间减少8小时 在转化为时间戳,也就是转化为绝对时间戳,返回,并且按照服务器所在的时区显示
时区设置为 +00:00 那么它 就直接把 字面量转化为时间戳 ,然后按照服务器所在的时区显示
2.controller
通过 requestparam传入的参数 默认是东八区 会转化
通过json传入的参数 会根据 jackson 给的时区 转化 默认是UTC
3.数据库存储类型 datetime 和 timpstamp
都是存储字面量
第一个就是存储字面量本身转化为二进制
第二个是存储字面量转化的时间戳
JDBC 会根据 serverTimeZone 把 这两个类型 转化为 绝对时间戳 ,然后 放入 Date类型 或者 LocalDateTime 类型 都是 根据 系统服务器默认时区进行转化
例如
数据库存储的字面量为
2025-02-16 09:06:45.992000
你serverTimezone指定的是 Asia/Shanghai
合并的时间就是
2025-02-16 09:06:45.992000+08:00
那么转化为绝对时间戳 的字面量时间就是
2025-02-16 01:06:45.992000+00:00
最后在根据系统服务器时区比如 系统服务器时区是 Asia/Shanghai 那么就会转化为
2025-02-16 09:06:45.992000+08:00

最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



