在Linux系统中,时间管理涉及“系统时间”(由内核维护,软件运行使用)和“硬件时间”(由主板BIOS/UEFI保存,关机后仍保留)两个概念,两者可能不同步,需根据需求调整,以下是更改Linux系统时间的详细方法,涵盖命令行和图形界面操作,并包含时区设置及常见注意事项。
使用timedatectl
命令(推荐,适用于systemd系统)
现代Linux发行版(如Ubuntu 16.04+、CentOS 7+)普遍使用systemd
管理服务,timedatectl
是其内置的时间管理工具,操作简单且功能全面。
查看当前时间状态
timedatectl status
输出信息包括:系统时间、硬件时间、时区、是否启用NTP(网络时间同步)等。Local time: Sat 2023-10-01 14:30:00 CST
Universal time: Sat 2023-10-01 06:30:00 UTC
RTC time: Sat 2023-10-01 06:30:00
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
设置时区
若时区错误,需先调整时区(例如设置为“亚洲/上海”):
sudo timedatectl set-timezone Asia/Shanghai
可通过timedatectl list-timezones
查看所有可用时区,结合grep
快速搜索(如timedatectl list-timezones | grep Shanghai
)。
手动设置系统时间
格式为YYYY-MM-DD HH:MM:SS
,例如设置为2023年10月1日12点30分:
sudo timedatectl set-time "2023-10-01 12:30:00"
设置硬件时间
系统时间与硬件时间可独立设置,但建议保持同步,若需将系统时间写入硬件时间(推荐操作):
sudo timedatectl set-local-rtc 0 # 0表示使用UTC时间(硬件时间默认UTC),1表示使用本地时间
或直接同步:
sudo hwclock --systohc # 将系统时间同步到硬件时间
禁用/启用NTP同步
若手动修改时间,需先关闭NTP(否则会被自动覆盖):
sudo timedatectl set-ntp no # 禁用NTP
修改完成后若需重新启用自动同步:
sudo timedatectl set-ntp yes # 启用NTP
timedatectl
常用参数说明
| 参数 | 作用 | 示例 |
|———————|————————–|——————————-|
| status
| 查看时间状态 | timedatectl status
|
| set-timezone
| 设置时区 | sudo timedatectl set-timezone Asia/Shanghai
|
| set-time
| 设置系统时间 | sudo timedatectl set-time "2023-10-01 12:30"
|
| set-local-rtc
| 设置硬件时间模式(0/UTC,1/本地) | sudo timedatectl set-local-rtc 0
|
| set-ntp
| 启用/禁用NTP同步 | sudo timedatectl set-ntp no
|
使用date
和hwclock
命令(传统方法)
适用于旧版Linux系统(如CentOS 6、Ubuntu 14.04等),或无systemd
的环境。
修改系统时间
使用date
命令,格式需加号,
sudo date -s "20231001 123000" # 格式:YYYYMMDD HHMMSS
或更易读的格式:
sudo date -s "2023-10-01 12:30:00"
同步到硬件时间
修改系统时间后,需手动同步到硬件时间,否则重启后会恢复:
sudo hwclock --systohc # 系统时间 → 硬件时间
若需将硬件时间同步到系统时间(例如硬件时间正确但系统时间错误):
sudo hwclock --hctosys # 硬件时间 → 系统时间
设置时区
传统方法需手动复制时区文件:
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 复制上海时区文件
图形界面操作(适用于桌面版Linux)
以Ubuntu GNOME桌面为例:
- 打开“设置”(Settings),进入“通用”>“日期和时间”;
- 关闭“自动从互联网设置时间”(即禁用NTP);
- 点击“日期”和“时间”旁的“设置”按钮,手动调整日期和时间;
- 时区修改:点击“时区”下拉菜单,选择对应时区(如“Asia/Shanghai”)。
注意事项
- 权限问题:所有时间修改命令均需
sudo
或root
权限,普通用户无法直接修改。 - NTP冲突:若启用NTP(如
chrony
、ntpd
服务),手动修改时间会被自动覆盖,需先关闭NTP。 - 硬件时间模式:建议硬件时间使用UTC(默认),避免多系统切换时时间混乱(如Windows默认使用本地时间,与Linux UTC时间相差8小时)。
相关问答FAQs
Q1:为什么修改了系统时间后,重启又恢复成原来的时间?
A:可能原因有两个:① 未将系统时间同步到硬件时间(需执行sudo hwclock --systohc
);② 系统开启了NTP服务(如chronyd
或ntpd
),会自动同步网络时间覆盖手动设置,可通过sudo timedatectl set-ntp no
关闭NTP后再修改时间。
Q2:如何确认硬件时间是否正确?
A:使用hwclock
命令查看硬件时间,
hwclock --show
输出格式如Sat 01 Oct 2023 06:30:00 PM CST
,表示硬件时间为UTC+8(若时区为上海),若需对比系统时间,可执行date
查看,两者一致则同步成功。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/19942.html