因为部署至AWS,结果程序打印出的时间是0时区的。
按照网上的方法修改了系统时间,结果运行了几天后竟然恢复成0时区了。
可能是我修改的姿势不对,导致AWS因为一些原因重启后时区恢复。
于是找了一下官网的方法,现在搬运至这里.
原文:https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/set-time.html
在 Amazon Linux 上更改时区
默认情况下,Amazon Linux 实例设置为 UTC (协调世界时) 时区,但是您可能想将实例上的时间更改为本地时间或网络中的其他时区。
重要
这些过程适用于 Amazon Linux。有关其他发布版本的更多信息,请参阅其具体文档。
更改实例上的时区
- 确定将在实例上使用的时区。/usr/share/zoneinfo 目录包含时区数据文件的层次结构。浏览该位置的目录结构,查找针对您的时区的文件。
[ec2-user ~]$ ls /usr/share/zoneinfo
Africa Chile GB Indian Mideast posixrules US
America CST6CDT GB-Eire Iran MST PRC UTC
Antarctica Cuba GMT iso3166.tab MST7MDT PST8PDT WET
Arctic EET GMT0 Israel Navajo right W-SU
...
该位置的部分条目是目录 (如 America),这些目录包含针对特定城市的时区文件。查找要用于实例的城市 (或时区中的一个城市)。在此示例中,您可以使用洛杉矶的时区文件 /usr/share/zoneinfo/America/Los_Angeles。
-
使用新时区更新 /etc/sysconfig/clock 文件。
使用您常用的文本编辑器 (如 /etc/sysconfig/clockvim 或 nano) 打开 文件。您需要在编辑器命令中使用 sudo,因为 /etc/sysconfig/clock 归 root 所有。
-
查找 ZONE 条目,将其更改为时区文件 (忽略路径的 /usr/share/zoneinfo 部分)。例如,要更改为洛杉矶时区,请将 ZONE 条目更改为以下内容:
ZONE="America/Los_Angeles"
注意
请勿将 UTC=true 条目更改为其他值。此条目用于硬件时钟;如果您在实例上设置了其他时区,则无需调整此条目。
保存文件,退出文本编辑器。
-
在 /etc/localtime 与时区文件之间创建一个符号链接,以便实例在引用本地时间信息时找到此时区文件。
[ec2-user ~]$ sudo ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
-
重启系统,以便所有服务和应用程序接受新时区信息。
[ec2-user ~]$ sudo reboot