在Linux系统中获取服务器时间是系统管理和运维中的基础操作,准确的时间同步对于日志记录、任务调度、安全审计等至关重要,Linux系统提供了多种命令和工具来获取、设置和管理时间,以下将详细介绍常用方法及其原理。

使用date命令获取当前时间
date是最基础的时间查看命令,默认显示本地时间(硬件时钟结合系统时间),基本用法为:
date
输出格式示例:Wed Oct 25 14:30:45 CST 2025,其中CST表示中国标准时间,若需自定义格式,可通过加格式化符号实现,
date "+%Y-%m-%d %H:%M:%S" # 输出:2025-10-25 14:30:45
常用格式化符号包括:
%Y:四位年份(如2025)%m:两位月份(01-12)%d:两位日期(01-31)%H:24小时制小时(00-23)%M:分钟(00-59)%S:秒(00-60,60用于闰秒)
查看硬件时钟与系统时间
Linux系统包含两个时钟概念:

- 系统时间:由Linux内核维护,关机后丢失。
- 硬件时钟(RTC):由主板电池供电,关机后仍运行。
使用hwclock命令可查看硬件时钟:
hwclock # 显示硬件时钟时间,默认本地时间 hwclock -u # 显示UTC时间
同步硬件时钟与系统时间:
hwclock --hctosys # 硬件时钟同步到系统时间 hwclock --systohc # 系统时间同步到硬件时钟
使用timedatectl管理时间(推荐)
现代Linux发行版(如Ubuntu 16+、CentOS 7+)采用systemd管理时间,timedatectl是官方推荐工具,查看当前时间状态:
timedatectl status
输出信息包括:
- 本地时间、UTC时间、RTC时间
- 时区设置
- 是否启用NTP时间同步
设置时区:
timedatectl set-timezone Asia/Shanghai # 设置为上海时区
NTP时间同步
长时间运行的服务器可能因时钟漂移导致时间偏差,需通过NTP(Network Time Protocol)同步时间,安装NTP服务:
# Ubuntu/Debian sudo apt install ntp # CentOS/RHEL sudo yum install ntp
启动并设置开机自启:
sudo systemctl start ntp sudo systemctl enable ntp
检查NTP同步状态:
ntpq -p # 查看NTP服务器列表及同步状态
若使用chrony(更轻量的NTP客户端):
sudo apt install chrony # Ubuntu/Debian sudo yum install chrony # CentOS/RHEL sudo systemctl start chronyd sudo systemctl enable chronyd chronyc sources # 查看chrony同步源
通过/proc和/sys文件获取时间
Linux内核通过虚拟文件暴露时间信息:
cat /proc/time # 获取内核时间戳(jiffies计数器) cat /proc/uptime # 系统运行时间(秒)和空闲时间
Python脚本获取时间
通过Python的datetime模块可灵活获取时间:
import datetime
now = datetime.datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))
时间格式化对比
以下为常用时间格式化符号对照表:
| 符号 | 含义 | 示例 |
|---|---|---|
%Y |
四位年份 | 2025 |
%y |
两位年份 | 23 |
%m |
两位月份 | 10 |
%B |
月份全称 | October |
%d |
两位日期 | 25 |
%H |
24小时制小时 | 14 |
%I |
12小时制小时 | 02 |
%M |
分钟 | 30 |
%S |
秒 | 45 |
%z |
时区偏移量 | +0800 |
%F |
日期(%Y-%m-%d) | 2025-10-25 |
相关问答FAQs
Q1: 如何将Linux服务器时间同步为UTC时间?
A1: 使用timedatectl命令设置时区为UTC:
sudo timedatectl set-timezone UTC
若需同步硬件时钟,执行:
sudo hwclock --systohc
Q2: 为什么服务器时间与NTP服务器不同步?
A2: 可能原因包括:
- NTP服务未启动或未配置正确的NTP服务器(检查
/etc/ntp.conf或/etc/chrony.conf); - 防火墙阻断了UDP 123端口(NTP默认端口);
- 硬件时钟偏差过大,需先手动同步时间再启用NTP。
可通过ntpq -p或chronyc sources查看同步状态,若无标识的同步源,说明未成功同步。
