ttimedatectl /date /hwclock 命令
timedatectl date hwclock 命令在Linux系统中都用于修改系统时间,但它们在功能、使用方式和适用场景上存在一些区别。
1.timedatectl
(1)功能
- 功能全面:
timedatectl是一个较为综合的命令,它不仅可以显示当前的系统时间和日期设置,还可以用于查询和更改这些设置。此外,它还能管理系统时区以及NTP(网络时间协议)服务的状态。 - 时区管理:
timedatectl能够列出所有可用的时区,并允许用户设置或更改系统时区。 - NTP服务控制:
该命令还可以启用或禁用NTP服务,这对于需要确保系统时间准确性的场景非常重要。 - 硬件时钟设置:
timedatectl还可以控制硬件时钟(RTC)是设置为本地时间还是UTC时间。 - 安全性:
由于timedatectl能够影响系统时间和时区等关键设置,因此通常需要root权限才能执行写操作。
(2)使用
timedatectl
# timedatectl
Local time: 三 2024-09-11 08:36:19 CST
Universal time: 三 2024-09-11 00:36:19 UTC
RTC time: 三 2024-09-11 00:36:19
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
说明:
- Local time:本地时间。
- Universal time:世界标准时间。
- RTC time:Real Time Clock,硬件时钟,主板上由电池供电的BIOS时间。
- CST:中国标准时间,GMT+8=UTC+8=CST。
- UTC:协调世界时, 世界标准时间。原子时为基础, 非常准确。约等于GMT。
- GMT:格林尼治标准时间。UTC是根据原子钟来计算时间,而GMT是根据地球的自转和公转来计算时间。UTC是现在用的时间标准,GMT是老的时间计量标准。UTC更加精确,由于现在世界上最精确的原子钟50亿年才会误差1秒,可以说非常精确。
- Time zone:时区。
- System clock synchronized:系统时钟同步状态(yes表示系统时钟已同步)。
- NTP service:NTP时钟同步服务。
- RTC in local TZ:no表示硬件时钟设置为协调世界时(UTC),yes表示硬件时钟设置为本地时间。
hwclock -r 可查看硬件时钟
# hwclock -r
2024年09月11日 星期三 08时39分58秒 -0.723120 秒
设置时钟:
# timedatectl set-time '2024-09-10 17:20:00'
设置硬件时钟:
# timedatectl set-local-rtc 1
# timedatectl
timedatectl
Local time: 三 2024-09-11 08:42:43 CST
Universal time: 三 2024-09-11 00:42:43 UTC
RTC time: 三 2024-09-11 08:42:43
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: yes
RTC in local TZ: yes
DST active: n/a
Warning: The system is configured to read the RTC time in the local time zone.
This mode can not be fully supported. It will create various problems
with time zone changes and daylight saving time adjustments. The RTC
time is never updated, it relies on external facilities to maintain it.
If at all possible, use RTC in UTC by calling
'timedatectl set-local-rtc 0'.
状态变化: RTC in local TZ: yes
启用NTP时间同步命令:timedatectl set-ntp true
禁用NTP时间同步命令:timedatectl set-ntp false
设置时区命令:timedatectl set-timezone “Asia/Shanghai”
2.date
(1)功能
- 专注日期显示:
date命令主要用于显示当前日期和时间,但它也允许用户以自定义格式显示这些信息。 - 时间设置:
虽然date命令主要用于显示时间,但也可以用来设置系统时间。然而,这种设置方式通常不推荐用于生产环境,因为它可能会导致时间不准确或与其他系统服务(如NTP)冲突。 - 使用限制:
使用date命令设置时间时,通常需要以root用户身份登录,并且可能需要关闭NTP服务或确保NTP服务未运行,以避免时间被自动同步回原来的值。
(2)使用
date -s "2024-09-11 09:30:00"
3.hwclock
hwclock(硬件时钟命令),也被称为实时时钟(RTC),是一个用于访问硬件时钟的实用程序。硬件时钟独立于您使用的操作系统,甚至在机器关闭时也会运行。硬件时钟也被称为BIOS时钟。用户也可以从BIOS更改硬件时钟的日期和时间。硬件时钟存储秒、分钟、小时、日、月和年的值。hwclock实用程序在用户首次更改时创建/etc/adjtime文件以保存其设置。
设置时钟:
# hwclock --set --date="2024-09-11 09:30:00"
显示时钟:
# hwclock --show
2024年09月11日 星期三 08时49分28秒 -0.894220 秒
# hwclock -r
2024年09月11日 星期三 08时52分14秒 -0.931875 秒
常用选项:
-r, --show 显示RTC时间
–get 显示经过漂移校正的RTC时间
–set 根据–date设置RTC
-s, --hctosys 将系统时间从RTC设置
-w, --systohoc 将RTC从系统时间设置
–systz 用于将时区配置发送到内核
-a, --adjust 调整RTC以考虑系统漂移
–predict 根据–date预测漂移的RTC时间
-u, --utc 显示RTC时间尺度为UTC
-l, --localtime 显示RTC时间尺度为本地时间
-D, --debug 用于显示调试信息
-V, --version 显示版本信息并退出
-h, --help 显示帮助文本并退出