0

0

Linux查看日期和时间date命令用法

P粉602998670

P粉602998670

发布时间:2025-09-09 09:17:01

|

662人浏览过

|

来源于php中文网

原创

date命令可查看和设置系统时间,支持格式化输出及修改时区。使用date +"%Y-%m-%d %H:%M:%S"可自定义显示格式,sudo date -s设置系统时间,sudo hwclock --systohc同步硬件时钟;时区由/etc/localtime决定,可用timedatectl set-timezone配置,TZ环境变量可临时切换时区显示。

linux查看日期和时间date命令用法

Linux的

date
命令是一个非常基础但极其强大的工具,它不仅仅是用来显示当前系统日期和时间的,更能够按照我们需求来格式化输出,甚至直接修改系统时间。在我日常的系统管理和脚本编写中,这个命令的出镜率高得惊人,几乎是处理时间相关任务的起点。

解决方案

date
命令的核心作用在于查看和设置系统日期与时间。最简单的用法,直接在终端输入
date
,它会立即返回当前系统设定的日期、时间、时区以及年份。但它的魅力远不止于此,通过各种选项和格式化字符串,我们可以让它变得异常灵活。

例如,要查看当前时间:

date

输出可能类似:

Fri Apr 12 10:30:45 AM CST 2024

若想修改系统时间,比如将日期设置为2024年4月12日15点30分:

sudo date -s "2024-04-12 15:30:00"

或者使用更具体的格式:

sudo date --set="12 APR 2024 15:30:00"

这里需要

sudo
权限,因为修改系统时间是特权操作。修改后,通常还需要将系统时间同步到硬件时钟,以防重启后时间又回到旧的设置:

sudo hwclock --systohc

这个命令会将当前的系统时间(由

date
命令管理)写入到主板上的硬件时钟中。

Linux查看日期和时间date命令用法

Linux中如何自定义日期和时间的显示格式?

date
命令的强大之处,很大一部分体现在其灵活的格式化输出能力上。我们不总是需要默认的那种长串信息,有时只想要年-月-日,有时只想要时:分:秒,甚至需要特定的星期几信息。这就要用到
+
号后面跟着的格式化字符串了。

我个人觉得,掌握这些格式化符号是使用

date
命令的一个分水岭,从“会用”到“用好”的关键。比如,我经常需要生成带有时间戳的文件名,或者在日志中打印精确到毫秒的时间,这些都离不开格式化。

一些常用的格式化符号包括:

  • %Y
    : 四位年份 (e.g., 2024)
  • %m
    : 两位月份 (e.g., 04)
  • %d
    : 两位日期 (e.g., 12)
  • %H
    : 两位小时 (24小时制, e.g., 15)
  • %m
    : 两位分钟 (e.g., 30)
  • %S
    : 两位秒 (e.g., 05)
  • %S
    : 从1970年1月1日00:00:00 UTC到现在的秒数 (Unix时间戳)
  • %w
    : 星期几 (0表示星期天, 6表示星期六)
  • %a
    : 星期几的缩写 (e.g., Fri)
  • %b
    : 月份的缩写 (e.g., Apr)
  • %F
    : 等同于
    %Y-%m-%d
    (常用)
  • %T
    : 等同于
    %H:%M:%S
    (常用)

举几个例子: 想要输出

2024-04-12 15:30:05

date +"%Y-%m-%d %H:%M:%S"

如果我只想知道今天是今年的第几天:

date +"今天是今年的第 %j 天"

或者获取当前的Unix时间戳,这在编程和系统日志中非常有用:

date +"%s"

这些组合几乎可以满足所有日常对时间格式的需求,通过简单的拼接和组合,就能得到你想要的结果。

Linux查看日期和时间date命令用法

在Linux系统下,如何精确修改系统日期和时间?

修改系统时间并非只是简单地敲一个

date -s
命令那么直接,尤其是在需要精确调整或考虑持久性的场景下。在我看来,这涉及到两个层面:系统运行时的时间和系统重启后的时间。

Tellers AI
Tellers AI

Tellers是一款自动视频编辑工具,可以将文本、文章或故事转换为视频。

下载

date -s
date --set
命令确实可以立即修改当前运行的系统时间。但这里有个陷阱,就是Linux系统内部维护着一个系统时钟(software clock),而主板上还有一个硬件时钟(hardware clock,也叫RTC,Real Time Clock)。默认情况下,系统启动时会从硬件时钟读取时间来初始化系统时钟。所以,如果你只修改了系统时钟,而没有更新硬件时钟,那么系统重启后,时间很可能又“变回去”了。

因此,修改系统时间通常是这样一套流程:

  1. 修改系统时钟:
    sudo date -s "YYYY-MM-DD HH:MM:SS"
    # 示例:
    sudo date -s "2024-04-12 15:30:00"

    或者你也可以使用

    timedatectl
    命令,它在现代Linux发行版(如基于systemd的系统)中是更推荐的做法,因为它能更好地管理时间和时区:

    sudo timedatectl set-time "2024-04-12 15:30:00"
  2. 将系统时钟同步到硬件时钟:
    sudo hwclock --systohc

    这一步至关重要,它确保了你修改后的时间在系统重启后依然生效。反过来,如果你想用硬件时钟的时间来更新系统时钟,可以使用

    sudo hwclock --hctosys

在实际操作中,手动修改时间是比较少见的,更多时候我们会依赖网络时间协议(NTP)来自动同步时间,这才是确保时间精确性和一致性的最佳实践。但了解手动修改的机制,能帮助我们在NTP服务出现问题时进行故障排查。

Linux查看日期和时间date命令用法

Linux日期命令与时区管理有何关联?

时区问题,在我处理跨国项目或管理位于不同地理位置的服务器时,总是一个绕不开的话题。

date
命令的输出会直接受到系统时区设置的影响。一个看似简单的时间,背后却隐藏着复杂的时区逻辑。

Linux系统通常通过

/etc/localtime
文件来确定当前系统的时区。这个文件通常是一个指向
/usr/share/zoneinfo/
目录下某个时区文件的符号链接。当你运行
date
命令时,它会读取这个文件来确定如何显示本地时间。

例如,如果你的系统时区设置为上海,

date
命令会显示CST(China Standard Time)。如果设置为纽约,则会显示EST/EDT。

要查看当前系统时区,可以使用:

timedatectl

或者直接查看

/etc/localtime
的链接目标:

ls -l /etc/localtime

要修改系统时区,最推荐的方法是使用

timedatectl
(适用于systemd系统):

# 列出所有可用时区
timedatectl list-timezones

# 设置时区,例如设置为东京时间
sudo timedatectl set-timezone Asia/Tokyo

修改时区后,

date
命令的输出会立即反映新的时区设置。需要注意的是,
date
命令本身并没有直接修改时区的功能,它只是一个“观察者”和“执行者”,根据系统已有的时区配置来显示或设置时间。时区的管理是一个更宏观的系统配置问题。

理解

date
命令与时区的关系,对于编写跨时区工作的脚本或调试时间相关问题至关重要。你可能会遇到一些场景,需要临时切换
TZ
环境变量来查看不同时区的时间,而无需修改系统全局设置:

# 在不改变系统时区的情况下,查看伦敦时间
TZ='Europe/London' date

这在做一些时间计算或对比时非常方便,避免了频繁修改系统配置的麻烦。

相关专题

更多
js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

258

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

208

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1465

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

619

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

550

2024.03.22

php中定义字符串的方式
php中定义字符串的方式

php中定义字符串的方式:单引号;双引号;heredoc语法等等。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

545

2024.04.29

go语言字符串相关教程
go语言字符串相关教程

本专题整合了go语言字符串相关教程,阅读专题下面的文章了解更多详细内容。

162

2025.07.29

c++字符串相关教程
c++字符串相关教程

本专题整合了c++字符串相关教程,阅读专题下面的文章了解更多详细内容。

81

2025.08.07

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

72

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.4万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号