linux系统支持多种方式重置系统时间,无论是临时调整当前运行环境的时间,还是永久修改系统时间并同步硬件时钟,都可以通过系统自带的命令快速实现,适配不同场景的使用需求。

临时重置系统时间
如果只是需要临时调整当前会话的系统时间,不需要重启后依然生效,可以直接使用date命令完成操作,该命令修改的是系统运行的软件时钟,重启后会恢复到之前的硬件时钟时间。
date命令基本用法
date命令的核心格式是date -s "时间字符串",时间字符串支持多种格式,常用的有年月日时分秒的组合格式。
# 将系统时间设置为2024年5月20日 15点30分00秒 date -s "2024-05-20 15:30:00" # 只修改日期,时间保持当前值 date -s "2024-05-20" # 只修改时间,日期保持当前值 date -s "15:30:00"
执行上述命令后,可以通过不带参数的date命令查看当前系统时间,确认是否修改成功。
# 查看当前系统时间 date
永久重置系统时间
临时修改的时间在系统重启后会失效,如果需要永久修改系统时间,需要将修改后的软件时钟同步到硬件时钟,同时如果是使用systemd的linux发行版,还可以使用timedatectl命令直接完成永久修改。
同步硬件时钟
linux系统存在两个时钟:软件时钟(系统运行时的时间)和硬件时钟(主板上的CMOS时钟),重启时系统会读取硬件时钟来初始化软件时钟。使用hwclock命令可以将软件时钟同步到硬件时钟,实现永久修改。
# 将系统软件时钟同步到硬件时钟 hwclock --systohc # 也可以简写为 hwclock -w
如果需要将硬件时钟同步到软件时钟,可以使用hwclock --hctosys命令,也就是hwclock -s。
使用timedatectl命令修改
对于使用systemd的linux发行版,比如Ubuntu 16.04及以上、CentOS 7及以上版本,timedatectl是更推荐的时间管理命令,它可以直接修改系统时间并自动同步硬件时钟,不需要额外执行hwclock命令。
# 查看当前时间相关状态 timedatectl status # 设置系统时间,自动同步硬件时钟 timedatectl set-time "2024-05-20 15:30:00"
如果系统开启了NTP时间同步服务,使用timedatectl set-time命令会失败,需要先关闭NTP同步再修改时间:
# 关闭NTP时间同步 timedatectl set-ntp false # 修改时间 timedatectl set-time "2024-05-20 15:30:00" # 修改完成后可以重新开启NTP同步 timedatectl set-ntp true
不同场景的注意事项
- 修改系统时间需要root权限,普通用户执行命令需要加上
sudo前缀,比如sudo date -s "2024-05-20 15:30:00"。 - 如果服务器运行有依赖时间的服务,比如数据库、定时任务,修改时间前建议先停止相关服务,避免时间跳变导致数据异常。
- 生产环境建议优先使用NTP服务同步时间,而不是手动重置系统时间,避免时间误差过大引发问题。
常见问题排查
如果修改时间后重启又恢复到之前的时间,大概率是硬件时钟没有同步,执行hwclock -w同步后再重启即可。如果timedatectl命令执行报错,可能是系统没有安装systemd,这种情况只能使用date和hwclock组合的方式修改时间。
linux系统时间date命令hwclock命令timedatectl修改时间:2026-06-26 15:39:28