springboot设置时区不起作用_docker设置时区
SpringBootDocker 设置 不起作用
2023-06-13 09:14:50 时间
大家好,又见面了,我是你们的朋友全栈君。
第一步:确认docker时区
进入容器中
docker exec -it 容器name bash
查看容器时区:
date
如果时区不对,则需要在启动容器的时候指定正确的时区。在启动的时候多一个参数:
-e TZ=”Asia/Shanghai”
docker run -e TZ="Asia/Shanghai" -d -p 80:80 --name nginx nginx
第二步确认数据库时区
SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);
如果显示的是08:00:00则是cst时区。
如果不是cst时区,则执行Sql:
set global time_zone = '+8:00'; ##修改mysql全局时区为北京时间,即我们所在的东8区
set time_zone = '+8:00'; ##修改当前会话时区
flush privileges; #立即生效
第三步确认数据库连接版本是否是6及版本以上
如果是6及以上版本,则数据连接需要加上时区
jdbc:mysql://192.168.1.54:3306/......&serverTimezone=Asia/Shanghai
第四步:确认SpringBoot的时区
如果不是cst时区,则在启动文件中加上:
@SpringBootApplication
public class ApplyPartyApplication {
public static void main(String[] args) {
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
SpringApplication.run(ApplyPartyApplication.class, args);
}
}
第五步:确认json化输出前端的时区
此时数据库时区、容器时区、springboot时区都是CST,输出的时间还是可能差8小时,这因为Date进行json的时候还存一个时区,而springboot默认json工具是jackson,采用的是UTC时区。需要一下配置。注意:如果项目WebMvcConfig采用的是继承WebMvcConfigurationSupport,而不是实现WebMvcConfigurer接口的话,下面的配置会不生效。
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/189418.html原文链接:https://javaforall.cn
相关文章
- 基于springboot的旅游管理系统
- docker快速安装fastdfs服务springboot访问
- idea一份springboot项目启动多份,你会玩吗?
- 聊聊springboot项目如何优雅的修改或者填充请求参数
- 7大部分13章节561页笔记,彻底讲透SpringBoot生态体系及扩展
- springboot Jpa多数据源(不同库)配置
- idea创建springboot父子工程_Springboot框架
- springboot多环境配置文件_Springboot教程
- docker离线安装及配置tab补全_Docker安装
- springboot配置多个yml_spring几种配置方式
- SpringBoot-自动配置特性
- Docker关闭容器命令(docker stop)
- SpringSecurity简单入门(基于SpringBoot)
- 【Docker 系列】docker 学习 三
- git clone 一个 SpringBoot 项目,如何在本地运行?
- SpringBoot中使用Redis简化开发(springbootredis)
- SpringBoot热部署配置详解编程语言
- docker managed volume – 每天5分钟玩转 Docker 容器技术(40)
- 使用 Docker 轻松安装 MySQL 数据库(docker安装mysql)