时区设置
Ubuntu虚拟机修改时区
查看时间和时区
forlinx@ubuntu:~$ date
Sun Aug 1 00:31:18 PDT 2021
forlinx@ubuntu:~$ cat /etc/timezone
America/Los_Angeles
可以使用timedatectl命令在命令行进行修改:
检查当前是日期和时区设置
forlinx@ubuntu:~$ timedatectl
Local time: Sun 2021-08-01 00:42:57 PDT
Universal time: Sun 2021-08-01 07:42:57 UTC
RTC time: Sun 2021-08-01 07:42:57
Time zone: America/Los_Angeles (PDT, -0700)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
获取时区列表
forlinx@ubuntu:~$ timedatectl list-timezones
...
Asia/Hong_Kong
...
Asia/Shanghai
...
设置Asia/Shanghai为当前时区
forlinx@ubuntu:~$ timedatectl set-timezone Asia/Shanghai
forlinx@ubuntu:~$ cat /etc/timezone
Asia/Shanghai
forlinx@ubuntu:~$ timedatectl
Local time: Sun 2021-08-01 15:51:28 CST
Universal time: Sun 2021-08-01 07:51:28 UTC
RTC time: Sun 2021-08-01 07:51:29
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
RK3399 buildroot修改时区
不要试图手动/etc/timezone文件,这样的修改是不生效的。
需要修改buildroot的配置文件中关于时区的配置:
diff --git a/buildroot/configs/rockchip_rk3399_defconfig b/buildroot/configs/rockchip_rk3399_defconfig
index 5bd30fb73..cd2869f01 100644
--- a/buildroot/configs/rockchip_rk3399_defconfig
+++ b/buildroot/configs/rockchip_rk3399_defconfig
@@ -350,7 +350,7 @@ BR2_GENERATE_LOCALE=""
# BR2_SYSTEM_ENABLE_NLS is not set
BR2_TARGET_TZ_INFO=y
BR2_TARGET_TZ_ZONELIST="default"
-BR2_TARGET_LOCALTIME="Etc/UTC"
+BR2_TARGET_LOCALTIME="Asia/Shanghai"
BR2_ROOTFS_USERS_TABLES="board/rockchip/rk3399/users_table.txt"
BR2_ROOTFS_OVERLAY="board/rockchip/rk3399/fs-overlay-64/ board/rockchip/common/base board/rockchip/common/wifi board/rockchip/common/qt board/rockchip/rk3399/fs-overlay-64/"
BR2_ROOTFS_POST_BUILD_SCRIPT="build/post.sh"
重新编译即可。
before
[root@rk3399:/]# date
Tue Jan 1 00:06:38 UTC 2019
[root@rk3399:/]# cat /etc/timezone
Etc/UTC
after
[root@rk3399:/]# date
Tue Jan 1 08:46:03 CST 2019
[root@rk3399:/]# cat /etc/timezone
Asia/Shanghai
相关内容
GMT、UTC、CST、PDT、PST
https://www.beijing-time.org/time15.asp
GMT:格林威治时间
格林威治标准时间是根据地球自转为基础的时间计量系统,格林威治标准时间的正午时间是指当太阳横穿格林尼治子午线时(也就是在格林尼治时)的时间。由于地球在它的椭圆轨道里的运动速度不均匀,这个时刻可能和实际的太阳时相差16分钟。
地球每天的自转是有些不规则的,而且正在缓慢减速。所以,格林尼治时间已经不再被作为标准时间使用。
现在格林威治时间比北京时间晚8小时。
UTC:协调世界时
协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。
格林威治所在地的标准时间
CST:时区缩写
CST可视为美国、澳大利亚、古巴或中国的标准时间。
CST可以为如下4个不同的时区的缩写:
美国中部时间:Central Standard Time (USA) UT-6:00
澳大利亚中部时间:Central Standard Time (Australia) UT+9:30
中国标准时间:China Standard Time UT+8:00
古巴标准时间:Cuba Standard Time UT-4:00
PDT:(Pacific Daylight Time)太平洋夏季时间,UTC−8
PST:(Pacific Standard Time)太平洋标准时间,UTC−7
北京时间是东八区,即GMT+8或者UTC+8。