Linux date 命令

17 Mar 2025 | 6 分钟阅读

Linux date 命令用于显示日期、时间、时区等。它也用于设置 Linux 系统的日期和时间。通常,它用于以不同格式显示日期和计算时间差。

语法

选项

以下是一些有用的 date 命令选项

-d, --date=STRING: 用于显示 STRING 描述的时间。

--debug: 用于注释解析的日期,并向 stderr 提供关于有争议用法的警告。

-f, --file=DATEFILE: 类似于 '--date' 选项。

-I[FMT], --iso-8601[=FMT]: 用于以 ISO 8601 格式显示日期/时间。

-R, --rfc-email: 用于以 RFC 5322 格式显示日期和时间。例如,Mon, 14 Aug 2006 02:34:56 -0600。

--rfc-3339=FMT: 用于以 RFC 3339 格式显示日期/时间。

-r, --reference=FILE: 用于显示 FILE 的最后修改时间。

-s, --set=STRING: 用于设置 STRING 描述的时间。

-u, --utc, --universal: 用于显示或设置 UTC。

--help: 用于显示帮助手册。

--version: 显示版本信息。

格式化选项

%a: 用于显示缩写的星期名称(例如,Sun)

%A: 用于显示完整的星期名称(例如,Sunday)

%b: 用于显示缩写的月份名称(例如,Jan)

%B: 用于显示完整的月份名称(例如,January)

%c: 用于显示日期和时间(例如,Thu Mar 3 23:05:25 2005)

%C: 用于显示世纪;类似于 %Y,但省略最后两位数字(例如,20)

%d: 用于显示月份中的日期(例如,01)

%D: 用于显示日期;等同于 %m/%d/%y

%e: 用于显示月份中的日期,带空格填充;等同于 %_d

%F: 用于显示完整日期;等同于 %Y-%m-%d

%g: 用于显示 ISO 周数的年份的最后两位数字(参见 %G)

%G: 用于显示 ISO 周数的年份(参见 %V);通常仅与 %V 一起使用。

%h: 类似于 '%b' 选项。

%H: 用于小时(00..23)

%I: 用于小时(01..12)

%j: 用于一年中的第几天(001..366)

%k: 用于小时,带空格填充( 0..23);等同于 %_H

%l: 用于小时,带空格填充( 1..12);等同于 %_I

%m: 用于月份(01..12)

%M: 用于分钟(00..59)

%n: 用于换行

%N: 用于纳秒(000000000..999999999)

%p: 用于显示 AM 或 PM;如果未知则为空白

%P: 类似于 '%p' 选项,但显示为小写。

%q: 用于显示一年中的季度(1..4)

%r: 用于显示 12 小时制时间(例如,11:11:04 PM)

%R: 用于显示 24 小时制的小时和分钟;等同于 %H:%M

%s: 用于显示自 1970-01-01 00:00:00 UTC 以来的秒数

%S: 用于显示秒(00..60)

%t: 用于制表符

%T: 用于显示时间;等同于 %H:%M:%S

%u: 用于星期几(1..7);1 表示星期一

%U: 用于一年中的周数,以星期日为一周的第一天(00..53)

%V: 用于 ISO 周数,以星期一为一周的第一天(01..53)

%w: 用于星期几(0..6);0 表示星期日

%W: 用于一年中的周数,以星期一为一周的第一天(00..53)

%x: 用于日期表示(例如,12/31/99)

%X: 用于时间表示(例如,23:13:48)

%y: 用于年份的最后两位数字(00..99)

%Y: 用于年份

%z: 用于 +hh:mm 的数字时区(例如,-0400)

%:z: 用于 +hh:mm 的数字时区(例如,-04:00)

%::z: 用于 +hh:mm:ss 的数字时区(例如,-04:00:00)

%:::z: 用于具有必要精度的带 ':' 的数字时区(例如,-04, +05:30)

%Z: 用于字母时区缩写(例如,EDT)

Date 命令示例

让我们看一些 date 命令的例子

如何使用 date 命令

date 命令是一个基础实用程序,可以在不带任何参数的情况下执行。它将显示当前的日期和时间。考虑以下命令

以上命令将显示系统的当前日期和时间。考虑以下输出

Linux Date

日期格式化

我们可以按照自己的选择来显示日期。有多种选项可以以特定格式显示日期。上面列出的格式化选项可以查看不同的日期格式。考虑以下命令

从上面的命令中,日期将以不同的格式显示。考虑以下输出

Linux Date

与上面的命令类似,还有其他可用选项。请参阅上面格式化选项中的完整列表。

日期字符串

我们可以使用 '-d' 选项指定不同的日期字符串。'-d' 选项用于操作特定日期。考虑以下命令

从上面的命令中,我们有一个指定格式的日期。它将显示特定日期和时间的描述。考虑以下输出

Linux Date

我们也可以使用自定义格式化,如下所示

以上命令将以给定的格式显示日期。考虑以下输出

Linux Date

此外,我们可以传入像“昨天”、“星期一”、“上周一” 、“下周一”、“下个月”、“下一年”等等这样的字符串。

考虑以下命令

以上命令将相应地显示日期。考虑以下输出

Linux Date

覆盖时区

默认情况下,date 命令根据当前时区显示时间。但是,我们可以通过设置“TZ” 环境变量来更改它。'TZ' 变量的默认值存储在文件 "/etc/localtime" 中。更改环境变量的值后,我们可以显示不同时区的时间。考虑以下命令

以上命令将根据给定的时区显示时间。考虑以下输出

Linux Date

Date 命令作为 Epoch 转换器

date 命令也可用于显示 Epoch 时间。Epoch 时间(Unix 时间或 Unix 时间戳或 POSIX 时间)是指自 1970 年 1 月 1 日以来经过的时间(以秒为单位)。

要显示从 Epoch 到当前日期的 Epoch 时间,请使用 '%s' 选项执行命令,如下所示

以上命令将显示自 Epoch 时间以来的经过时间。考虑以下输出

Linux Date

要将时间转换为当前日期,请在秒数前加上 '@'。考虑以下命令

以上命令会将时间(以秒为单位)转换为人类可读的格式。考虑以下输出

Linux Date

显示文件的最后修改时间

'-r' 选项用于显示文件的最后修改时间。例如,要显示文件 'Demo1.txt' 的最后修改时间,请执行以下命令

以上命令将显示给定文件被修改的时间。考虑以下输出

Linux Date

设置系统日期和时间

我们可以使用 date 命令设置系统的日期和时间。但是,不建议使用 date 命令设置系统的日期和时间。因为 Linux 系统时钟是通过 sytemd-timesyncd 或 ntp 服务同步的。

要使用 date 命令设置时间,请使用 "--set= time" 选项。例如,如果我们想将日期和时间设置为“2020 年 6 月 6 日下午 8:15”,请执行以下命令

以上命令将设置指定的时间。考虑以下输出

Linux Date
下一主题Linux Cal