linux系统时间调整需依次执行:1.用date或timedatectl设系统时间;2.用hwclock --systohc同步至硬件时钟;3.用timedatectl set-timezone修正时区;4.临时停用chronyd/ntpd防自动覆盖。

如果您需要在Linux系统中调整当前显示的时间,可能是由于系统时间与实际时间存在偏差,或者需要手动同步硬件时钟与系统时间。以下是几种常用的修改系统时间的方法:
一、使用date命令修改系统时间
date命令用于读取和设置系统的软件时钟(即内核维护的系统时间),该时间在系统运行期间有效,但重启后不会自动保存到硬件时钟中。
1、以root权限执行命令,将系统时间设置为指定日期和时间,格式为:date -s "YYYY-MM-DD HH:MM:SS"。
2、例如,将时间设为2024年05月20日14点30分00秒,输入:date -s "2024-05-20 14:30:00"。
3、执行后可通过date命令验证是否生效,直接输入date并回车查看输出结果。
二、使用hwclock命令同步硬件时钟
hwclock命令用于访问和管理BIOS/UEFI中的硬件时钟(RTC),它独立于操作系统运行,断电后仍可保持时间。设置系统时间后,需将该时间写入硬件时钟,否则重启后会丢失。
1、将当前系统时间写入硬件时钟,执行:hwclock --systohc。
2、若需从硬件时钟读取时间并设置系统时间,执行:hwclock --hctosys。
3、检查硬件时钟当前值,执行:hwclock --show。
三、通过timedatectl统一管理时间与时区
timedatectl是systemd提供的时钟管理工具,可同时控制系统时间、硬件时钟、时区及NTP同步状态,适用于现代Linux发行版(如CentOS 7+、Ubuntu 16.04+等)。
1、查看当前时间状态,包括本地时间、UTC时间、RTC时间及时区信息,执行:timedatectl status。
2、设置系统时间为指定值,格式为:timedatectl set-time "YYYY-MM-DD HH:MM:SS"。
3、例如设置时间为2024-05-20 14:30:00,输入:timedatectl set-time "2024-05-20 14:30:00"。
4、启用或禁用NTP自动同步,分别执行:timedatectl set-ntp true 或 timedatectl set-ntp false。
四、修改时区并确保时间显示正确
系统时间通常以UTC存储,但显示时依赖时区设置。若时间显示异常,可能因时区配置错误导致,需确认并修正时区。
1、列出所有可用时区,执行:timedatectl list-timezones。
2、查找包含“Shanghai”的时区项,常见为Asia/Shanghai。
3、设置时区为上海,执行:timedatectl set-timezone Asia/Shanghai。
4、设置完成后,再次运行timedatectl status确认Local time字段已按本地时区显示。
五、临时关闭NTP服务避免时间被自动覆盖
若系统启用了chronyd或ntpd服务,其会定期校准系统时间。在手动设置时间前,应临时停止该服务,防止刚设置的时间被立即重置。
1、检查NTP服务状态,执行:timedatectl status | grep "NTP enabled"。
2、若显示enabled,停止chronyd服务(主流发行版默认):systemctl stop chronyd。
3、或停止ntpd服务(部分旧系统):systemctl stop ntpd。
4、设置完时间并写入硬件时钟后,可重新启用:systemctl start chronyd。










