# 如何在服务器上显示中国时间
我们在搭建完服务器之后,默认的时区通常是Etc/UTC (UTC, +0000)。
Etc/UTC
是一个特殊的时区标识,代表协调世界时(Coordinated Universal Time,缩写为UTC)或格林威治标准时间(Greenwich Mean Time,缩写为GMT)。这是一个不考虑夏令时的时区,始终保持不变。
"+0000" 是与UTC时区关联的时区偏移值,表示该时区与UTC的时间差为0小时,也就是与UTC时间完全一致。
如果你的服务器时区设置为"Etc/UTC",那么它将使用UTC时间作为系统的标准时间,不考虑夏令时的调整。这在一些服务器和应用程序中很常见,因为UTC时间通常用于记录日志和确保全球各地的时间一致性。
我们想要显示中国时间,只需要把时区切换到中国时区就好。下面我来聊聊如何切换时区。
# 查看当前系统时间信息
$ timedatectl
Local time: Fri 2023-09-08 09:22:14 UTC
Universal time: Fri 2023-09-08 09:22:14 UTC
RTC time: Fri 2023-09-08 09:22:14
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
# 列出可用时区
$ timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
...
# 设置时区
要设置服务器的时区,使用以下命令,将时区替换为你希望设置的时区,例如将时区设置为"Asia/Shanghai":
sudo timedatectl set-timezone Asia/Shanghai
验证时区设置
$ timedatectl
Local time: Fri 2023-09-08 17:33:17 CST
Universal time: Fri 2023-09-08 09:33:17 UTC
RTC time: Fri 2023-09-08 09:33:17
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
# 临时显示指定地区时间
我们可以使用环境变量TZ
来临时指定时区。下面是一些示例:
$ date
Fri Sep 8 17:36:25 CST 2023
$ TZ="America/New_York" date
Fri Sep 8 05:36:27 EDT 2023
$ ll
total 8388700
drwxr-xr-x 21 root root 4096 Aug 31 13:17 ./
drwxr-xr-x 21 root root 4096 Aug 31 13:17 ../
lrwxrwxrwx 1 root root 7 Aug 10 08:17 bin -> usr/bin/
drwxr-xr-x 5 root root 4096 Sep 5 14:37 boot/
drwxr-xr-x 8 bingbing-fu bingbing-fu 4096 Sep 1 16:32 data/
...
$ $ TZ="America/New_York" ll
total 8388700
drwxr-xr-x 21 root root 4096 Aug 31 01:17 ./
drwxr-xr-x 21 root root 4096 Aug 31 01:17 ../
lrwxrwxrwx 1 root root 7 Aug 9 20:17 bin -> usr/bin/
drwxr-xr-x 5 root root 4096 Sep 5 02:37 boot/
drwxr-xr-x 8 bingbing-fu bingbing-fu 4096 Sep 1 04:32 data/
...