SpringBoor连接mysql数据库取数据库中时间格式是12小时制的时间,如何显示成24小时制
(2020-04-02 19:26:25)
标签:
it教育文化 |
分类: SpringMVC/Boot |
数据库时间小技巧 - 取数据库中时间格式是12小时制的时间,如何显示成24小时制
设置spring配置文件:
1、spring.datasource.url=jdbc:mysql://10.35.105.25:3306/database?characterEncoding=utf-8&serverTimezone=GMT+8
数据库配置后面加上&serverTimezone=GMT+8
2、spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
第一步为设置数据库时间为东八区(北京)时间,保证debug时候从数据库查出时间一致。第二步为返回给前端的时间格式和时区设定,保证前端页面显示时间和数据库一致。
据库时间设置为UTC,代码中debug时,就会发现time时间查出来为Thu May
23
方法四:
进入mysql
查看时区是什么
--查看数据库时区设置
mysql> show variables like "%time_zone%";
+------------------+--------+
|
Variable_name
+------------------+--------+
|
system_time_zone | UTC
|
time_zone
+------------------+--------+
--修改当前会话时区,退出msql后 time_zone 会恢复成修改前的值
mysql> set time_zone = '+8:00';
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like "%time_zone%";
+------------------+--------+
|
Variable_name
+------------------+--------+
|
system_time_zone | UTC
|
time_zone
+------------------+--------+
—-修改全局会话时区
mysql> set global time_zone = '+8:00';
mysql> set time_zone = '+8:00';
mysql> flush privileges;
说明:
说明:
1、spring-boot中对于@RestController或者@Controller+@ResponseBody注解的接口方法的返回值默认是Json格式,
所以当对于date类型的数据,在返回浏览器端是会被spring-boot默认的Jackson框架转换,而Jackson框架默认的时区GMT(相对于中国是少了8小时)。
但是不知道为什么我这个项目再配置文件加上jackson的时区配置不起作用。
2、@PostContruct是spring框架的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。
3、TimeZone.setDefault(TimeZone.getTimeZone("UTC")); 用来修改整个java应用程序的时区,当jvm默认的时区不是中国时间时,可以这样手动修改。
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")