在Linux系统中修改系统时间,通常需要root权限或使用sudo提权。操作前建议先查看当前时间,并区分系统时间(内核时钟)与硬件时间(BIOS时钟),二者可独立设置,也可同步。

首先,使用date命令可以查看和修改系统时间。执行date即可显示当前时间,格式类似Mon Apr 7 10:30:00 CST 2025。若要修改时间,可使用date -s "2025-04-07 12:34:56",或分别设置日期和时间,例如date -s "2025-04-07"配合date -s "12:34:56"。修改后建议执行date确认结果。该方法直接修改内核时间,但不会自动同步到硬件时钟。
为了让修改后的系统时间写入硬件时钟,需使用hwclock命令。执行hwclock --systohc可将当前系统时间同步到硬件时钟;反之,hwclock --hctosys可将硬件时间同步到系统时间。部分发行版也支持hwclock --set --date="2025-04-07 12:34:56"直接设置硬件时间。对于使用systemd的现代发行版(如CentOS 7+、Ubuntu 16.04+),推荐使用timedatectl管理时间。
timedatectl命令是systemd提供的统一时间管理工具。执行timedatectl status可查看当前时间、时区、RTC时间及NTP同步状态。设置日期和时间可执行timedatectl set-time "2025-04-07 12:34:56"。若只想修改日期,可用timedatectl set-time "2025-04-07";只修改时间则用timedatectl set-time "12:34:56"。使用timedatectl设置时间时,系统会自动同步硬件时钟。
修改时区也是调整时间的重要环节。执行timedatectl list-timezones可列出所有可用时区,然后使用timedatectl set-timezone Asia/Shanghai设置指定时区。手动设置时区时,可通过软链接方式:ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime。时区错误会导致显示时间与UTC偏移不正确。
若系统开启了NTP自动同步,手动修改时间可能被覆盖。需要先关闭NTP:timedatectl set-ntp no,再执行修改;修改完成后可重新开启:timedatectl set-ntp yes。对于不依赖systemd的旧系统,可使用ntpdate命令强制同步:ntpdate pool.ntp.org,或使用chronyd(chrony)服务管理。修改时间后建议重启相关时间服务或使用systemctl restart systemd-timesyncd(若适用)。
修改Linux系统时间前,务必确认操作环境,因为错误的时间设置可能影响日志、证书验证及协作应用的运行。在生产服务器上,推荐采用NTP自动同步并设置正确时区,避免手动频繁修改。若只能手动修改,应在业务低峰期操作,并记录原始时间以便回滚。

查看详情

查看详情