在終端裡按你的方式顯示日期和時間
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: www.networkworld.com/article/348…
作者:Sandra Henry-Stocker 選題:lujun9972 譯者:wxy 校對:wxy