Linux查看和修改系统时间,date和timedatectl命令
前言
服务器时间不对?日志时间戳对不上?定时任务不准?这些问题都和系统时间有关。Linux 服务器的时间很重要,日志、定时任务、证书过期时间都依赖系统时间。时间不准会出各种奇怪的问题。本文就讲一下怎么查看和修改 Linux 系统时间,以及怎么设置时区。
查看系统时间
方法一:date 命令
date
输出示例:
Mon Oct 5 10:30:45 CST 2026
CST 就是中国标准时间(China Standard Time)。
方法二:timedatectl 命令(推荐)
timedatectl
输出示例:
Local time: Mon 2026-10-05 10:30:45 CST
Universal time: Mon 2026-10-05 02:30:45 UTC
RTC time: Mon 2026-10-05 02:30:46
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
这个命令显示的信息更全:本地时间、UTC时间、硬件时间、时区、是否同步、NTP服务状态。
设置时区
查看当前时区
timedatectl
看 Time zone 那行。
查看所有可用时区
timedatectl list-timezones
或者:
ls /usr/share/zoneinfo/
设置时区为上海
timedatectl set-timezone Asia/Shanghai
这是最常用的,国内服务器一般都设成这个。
验证
timedatectl
看 Time zone 那行是不是变成了 Asia/Shanghai。
手动设置时间
不推荐手动设置
一般情况下,时间不准了应该用 NTP 自动同步,不要手动设。手动设的时间过一段时间又会不准。
但如果确实需要手动设:
设置日期和时间
date -s "2026-10-05 10:30:45"
只设置时间
date -s "10:30:45"
只设置日期
date -s "2026-10-05"
NTP 时间同步
安装 NTP 服务
CentOS7 用 chronyd:
yum install chrony -y
启动并设置开机自启
systemctl start chronyd
systemctl enable chronyd
查看同步状态
timedatectl
看 System clock synchronized: yes 就是同步成功了。
手动同步一次
chronyc makestep
常见时间格式
date 命令可以格式化输出:
输出年月日
date +%Y-%m-%d
输出:
2026-10-05
输出时分秒
date +%H:%M:%S
输出完整日期时间
date +"%Y-%m-%d %H:%M:%S"
时间戳
date +%s
输出 Unix 时间戳(秒数)。
从时间戳转换
date -d @1728100000
实际应用场景
场景1:日志时间不对
看日志发现时间戳不对,先查系统时间:
date
如果时间不对,改时区:
timedatectl set-timezone Asia/Shanghai
场景2:定时任务不准
crontab 定时任务执行时间不对,先看系统时间:
date
时间不对就同步 NTP。
场景3:证书过期时间不对
SSL 证书过期时间对不上,也是系统时间的问题。
场景4:脚本里用到时间戳
写脚本的时候需要获取当前时间戳:
now=$(date +%s)
常见坑
坑1:时区不对导致日志时间差8小时
服务器装完默认是 UTC 时区,比北京时间晚8小时。
解决: 设置成上海时区:
timedatectl set-timezone Asia/Shanghai
坑2:改了时间但硬件时间没同步
手动改了系统时间,重启之后又变回去了,因为硬件时间(RTC)没改。
解决: 用 NTP 同步就不用管这个,NTP 会自动同步硬件时间。
坑3:NTP 服务没启动
装了 NTP 但没启动,时间还是不同步。
解决:
systemctl start chronyd
systemctl enable chronyd
坑4:手动设时间后过一会儿又不准了
手动设的时间不准,因为系统时钟会漂移。
解决: 用 NTP 自动同步,不要手动设。
总结
查看和修改系统时间的核心命令:
- date:快速看当前时间
- timedatectl:看完整时间信息(时区、NTP同步状态)
- timedatectl set-timezone Asia/Shanghai:设置时区
- chronyd:NTP时间同步服务
服务器时间一定要准,用 NTP 自动同步,不要手动设。国内服务器时区设成 Asia/Shanghai。
遇到问题加QQ23979811 协助处理