在終端里按你的方式顯示日期和時間
在 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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive