在终端里按你的方式显示日期和时间
创始人
2024-03-02 04:03:22
0次

Linux 的 date 命令提供了很多显示日期和时间的选项,要比你想的还要多。这是一些有用的选择。

在 Linux 系统上,date 命令非常简单。你键入 date,日期和时间将以一种有用的方式显示。它包括星期几、日期、时间和时区:

$ date
Tue 26 Nov 2019 11:45:11 AM EST

只要你的系统配置正确,你就会看到日期和当前时间以及时区。

但是,该命令还提供了许多选项来以不同方式显示日期和时间信息。例如,如果要显示日期以便进行排序,则可能需要使用如下命令:

$ date "+%Y-%m-%d"
2019-11-26

在这种情况下,年、月和日按该顺序排列。请注意,我们使用大写字母 Y 来获得四位数的年份。如果我们使用小写的 y,则只会看到两位数字的年份(例如 19)。不要让这种做法使你错误地联想到如果 %m 给你一个数字月份,%M 可能会给你月份的名称。不,%M 将给你分钟数。要以缩写名称格式获得月份,你要使用 %b,而对于完全拼写的月份,则要使用 %B。

$ date "+%b %B"
Nov November

或者,你可能希望以这种常用格式显示日期:

$ date "+%D"
11/26/19

如果你需要四位数的年份,则可以执行以下操作:

$ date "+%x"
11/26/2019

下面是一个可能有用的示例。假设你需要创建一个每日报告并在文件名中包含日期,则可以使用以下命令来创建文件(可能用在脚本中):

$ touch Report-`date "+%Y-%m-%d"`

当你列出你的报告时,它们将按日期顺序或反向日期顺序(如果你添加 -r)列出。

$ ls -r Report*
Report-2019-11-26
Report-2019-11-25
Report-2019-11-22
Report-2019-11-21
Report-2019-11-20

你还可以在日期字符串中添加其他详细信息。可用的各种选项多得令人惊讶。你可以使用 date "+%q" 来显示你所在的一年中的哪个季度,或使用类似以下命令来显示两个月前的日期:

$ date --date="2 months ago"
Thu 26 Sep 2019 09:02:43 AM EDT

是否想知道下周四的日期?你可以使用类似 date --date="next thu" 的命令,但是要理解,对于Linux,下个周四意味着今天之后的周四。如果今天是星期三,那就是明天,而不是下周的星期四。但是,你可以像下面的第二个命令一样指定下周的星期四。

$ date --date="next thu"
Thu 28 Nov 2019 12:00:00 AM EST
$ date --date="next week thu"
Thu 05 Dec 2019 12:00:00 AM EST

date 命令的手册页列出了其所有选项。该列表多得令人难以置信,但是你可能会发现一些日期/时间显示选项非常适合你。以下是一些你可能会发现有趣的东西。

世界标准时间(UTC):

$ date -u
Tue 26 Nov 2019 01:13:59 PM UTC

自 1970 年 1 月 1 日以来的秒数(与 Linux 系统上日期的存储方式有关):

$ date +%s
1574774137

以下是 date 命令选项的完整列表。正如我所说,它比我们大多数人想象的要广泛得多。

  • %% 显示字母 %
  • %a 本地语言环境的缩写星期名称(例如,日 / Sun)
  • %A 本地语言环境的完整星期名称(例如,星期日 / Sunday)
  • %b 本地语言环境的缩写月份名称(例如 一 / Jan)
  • %B 本地语言环境的完整月份名称(例如,一月 / January)
  • %c 本地语言环境的日期和时间(例如 2005年3月3日 星期四 23:05:25 / 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 24 小时制的小时(00..23)
  • %I 12 小时制的小时(01..12)
  • %j 一年的天(001..366)
  • %k 24 小时制的小时,填充前缀空格( 0..23);与 %_H 相同
  • %l 12 小时制的小时,填充前缀空格( 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 / 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 开始(00..53)
  • %V ISO 周号,以星期一为一周的第一天,从 01 开始(01..53)
  • %w 星期(0..6);0 是星期日
  • %W 年的周号,星期一为一周的第一天,从 00 开始(00..53)
  • %x 本地语言环境的日期表示形式(例如,1999年12月31日 / 12/31/99)
  • %X 本地语言环境的时间表示形式(例如,23:13:48)
  • %y 年的最后两位数字(00..99)
  • %Y 年份
  • %z +hhmm 格式的数字时区(例如,-0400)
  • %:z +hh:mm 格式的数字时区(例如,-04:00)
  • %::z +hh:mm:ss 格式的数字时区(例如,-04:00:00)
  • %:::z 数字时区,: 指明精度(例如,-04, +05:30)
  • %Z 字母时区缩写(例如,EDT)

via: https://www.networkworld.com/article/3481602/displaying-dates-and-times-your-way-with-linux.html

作者:Sandra Henry-Stocker 选题:lujun9972 译者:wxy 校对:校对者ID

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...