在終端里按你的方式顯示日期和時間
在 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相同%gISO 周號的年份的後兩位數字(請參見%G)%GISO 周號的年份(請參閱%V);通常僅配合%V使用%h與%b相同%H24 小時制的小時(00..23)%I12 小時制的小時(01..12)%j一年的天(001..366)%k24 小時制的小時,填充前綴空格( 0..23);與%_H相同%l12 小時制的小時,填充前綴空格( 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)%R24 小時制的小時和分鐘;與%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)%VISO 周號,以星期一為一周的第一天,從 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

















