📜  Linux日期

📅  最后修改于: 2020-12-08 03:17:21             🧑  作者: Mango

Linux date命令

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

句法:

date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

选件

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

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

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

-f,-file = DATEFILE:类似于“ –date”选项。

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

-R,-rfc-email:用于以RFC 5322格式显示日期和时间。例如,2006年8月14日星期一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:用于显示完整的工作日名称(例如,星期日)

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

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

%c:用于显示日期和时间(例如,2005年3月3日星期四,23:05:25)

%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 '%a %d-%m-%y'
date +'%A %d-%m-%y'
date +'%b %d-%m-%y'
date +'%B %d-%m-%y'
date +'%c %d-%m-%y'
date +'%C %d-%m-%y'

通过以上命令,日期将以不同的格式显示。考虑以下输出:

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

日期字符串

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

date -d "2020-06-06 12:10:53"

通过上面的命令,我们以不同的格式指定了日期。它将显示特定日期和时间的描述。考虑以下输出:

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

date -d '06 jun 2020' +'%A, %d %B %Y'

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

另外,我们可以传递诸如“昨天”,“星期一”,“上周一”,“下周一”,“下个月”,“下一年”之类的字符串。

考虑以下命令:

date -d now
date -d yesterday
date -d tomorrow
date -d "next monday"
date -d "last monday"

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

覆盖时区

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

TZ='Australia/Melbourne' date
TZ=+5:30 date

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

日期命令作为时代转换器

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

要显示从纪元到当前日期的时间,请使用“%s”选项执行命令,如下所示:

date +%s

上面的命令将从纪元时间开始显示经过的时间。考虑以下输出:

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

date -d @122222222

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

显示文件的最后修改时间

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

date -r Demo1.txt

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

设置系统日期和时间

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

要通过date命令设置时间,请使用“ –set = time”选项。例如,如果要将日期和时间设置为“ 2020年6月6日晚上8:15”,请执行以下命令:

date --set="20200606 22:15"

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