方案
一套代码,在不同的环境时区如何兼容?前后端传输统一使用世界时 UTC + 0,服务器和数据库会根据环境时区自动转换,Java 中字段数据类型使用 Date,格式化使用 @JsonFormat(pattern = “yyyy-MM-dd’T’HH:mm:ss.SSS’Z’”)
环境
服务器时区:UTC + 1
数据库时区:UTC + 1
表结构
CREATE TABLE `time_zone_table` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水号',
`contry` varchar(20) DEFAULT NULL COMMENT '国家',
`time` datetime DEFAULT NULL COMMENT '时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
add
可以看到入参是 UTC + 0,数据库存的是 UTC + 1
数据库
query
可以看到数据库存的是 UTC + 1,而查询出参变成了 UTC + 0
代码
https://gitee.com/zhaomingjian/workspace_fosun_demo/tree/master/time-zone