1. 概述
1.1 应用场景
部署工程时,可能会使用多个不同的服务器,部署多个工程节点、集群组件、外接配置库等。
用户必须确保这些服务器的时区一致,否则可能导致部署失败、启动失败、取数异常等。
问题一:用户读写任务数据源为 MySQL 数据库,FineDataLink中「数据预览」查看的日期数据和数据库数据时间不一致。
问题二:定时任务设置了执行频率,但并没有按照设置的频率执行(用户服务器时间不准导致)。
1.2 解决方案
本文以 Ubuntu 系统为例,简单介绍如何使用命令行调整系统时区。
其他类型操作系统版本命令可能略有区别,请自行查阅资料处理。
2. 操作步骤
2.1 查看当前时区
打开终端,输入以下命令来查看当前系统的时区设置:
timedatectl
2.2 列出所有可用的时区
如果想查看所有可用的时区列表,可以使用以下命令:
timedatectl list-timezones
也可以使用 grep 命令来帮助搜索特定的城市,例如:
timedatectl list-timezones | grep Shanghai
2.3 设置系统时区
当你决定使用哪个时区后,可以用以下命令来设置系统时区:
请将 Asia/Shanghai 替换为你选择的时区。这个命令会立即更新系统的时区。
sudo timedatectl set-timezone Asia/Shanghai
2.4 验证时区更改生效
再次运行 timedatectl 命令来确认时区已经正确更新:
确认输出显示的时区已经是你设置的新时区。
timedatectl
3. 内容扩展
建议用户在 jvm 中也加上时区参数。
需要使用JPS -v查询 jvm 参数,查看是否有额外设置时区。如下图所示:
若没有额外设置时区:
1)Linux 系统中:在%Tomcat%/bin目录下的catalina.sh/setenv.sh文件中新增配置,配置完成后重启工程。
-Duser.timezone=Asia/Shanghai
2)Windows 系统中:在%Tomcat%/bin目录下的catalina.bat文件中新增配置,配置完成后重启工程。
-Duser.timezone=Asia/Shanghai
-Duser.timezone=Asia/Shanghai 这句话尽量加在文件的开头,与其他自定义的 jvm 参数放在一起。如下图所示: