date命令用于顯示或設置系統日期。它最常用于以不同格式打印日期和時間,并計算將來和過去的日期。
在本教程中,我們將詳解date命令的基礎知識。date命令的語法形式是date [OPTION]... [+FORMAT]。
date命令默認使用系統時區。要使用其他時區,請將環境變量TZ設置為所需時區。
要使用默認格式顯示當前系統時間和日期,請在不指定任何選項參數運行date命令。
輸出將包括星期幾,月份,月份,時間,時區和年份Sat Jun 1 14:31:01 CEST 2019。
date
date 命令時間日期格式化
date命令的輸出,可以使用一系列格式控制字符,+符號進行格式化。格式控件以%符號開頭,并由其值代替。
%Y字符將會被年份替換,%m將會被月份替換,%d與將會被天替換,命令輸出將會是這樣Year: 2019, Month: 06, Day: 02。
date +"Year: %Y, Month: %m, Day: %d"
Year: 2019, Month: 06, Day: 02
date "+DATE: %D%nTIME: %T"
DATE: 12/26/22
TIME: 11:30:05
這是一些最常見的格式字符。
%a是星期幾的簡稱,例如命令date "+%a",見會打印的是Mon。
%A是星期幾的全稱,例如命令date "+%A"將會打印Monday。
%b是月份的簡寫,例如命令date "+%b"將會打印Jan。
%B月份的全稱,例如命令date "+%B"將會打印December。
%d當前日期的天數,例如命令date "+%d"將會打印26。
%D是完整的月/日/年的簡寫,例如命令date "+%D"將會打印12/26/22。
%H是24小時制00..23,例如命令date "+%H"將會打印12。
%I是12小時制01..12,例如命令date "+%I"將會打印12。
%j一年中的某天001..366,例如命令date "+%j"將會打印360。
%m是月份01..12,例如命令date "+%m"將會打印12。
%M是分鐘00..59,例如命令date "+%M"將會打印45。
%S是00..60秒,例如命令date "+%S"將會打印21。
%u是1..7的星期幾。例如命令date "+%u"將會打印1。
%Y是當前數字年份,例如命令date "+%Y"將會打印2022。
要獲取所有格式選項的完整列表,請在您的終端上運行date --help或運行man date。
格式化日期時間
-d選項允許您使用指定日期進行操作。可以將日期解釋為易于理解的日期字符串,也可以指定自定義的格式。
日期字符串還可以接受諸如“tomorrow”, “friday”, “last friday” “next friday”, “next month”, “next week”等值。
由于date命令默認使用系統時區。要使用其他時區,請將環境變量 TZ設置為所需時區。
要列出所有可用時區,可以列出/usr/share/zoneinfo目錄文件或運行命令timedatectl list-timezones。
date -d '16 Dec 1974' +'%A, %d %B %Y'
date -d "last week"
date -d 'TZ="Australia/Sydney" 06:30 next Monday'
Unix 時間戳轉換器
date命令可用作紀元轉換器,也就是Unix時間戳。Unix時間戳是自1970年1月1日UTC時間00:00:00起經過的秒數。
要打印從紀元到當前日期的秒數,請使用date命令%s格式控件,也就是命令date +%s。
要將紀元以來的秒轉換為日期,請使用date命令的-d選項,并在Unix時間戳添加前綴@。
date +%s
date -d @1234567890
Sat Feb 14 00:31:30 CET 2009
日期與文件名
date命令最常用于創建包含當前時間和日期的文件名。例如使用日期作為文件名創建Mysql備份文件。
要在Shell腳本中使用date命令的時間作為文件名,一種方式創建日期時間的變量然后作為文件名稱。
例如命令date_now=$(date "+%F-%H-%M-%S")格式化日期并分別給date_now變量。
當然也可以直接在文件名中使用date命令的格式化日期作為文件名稱,例如命令mysqldump database_name > database_name-$(date +%Y%m%d).sql。
date_now=$(date "+%F-%H-%M-%S")
mysqldump database_name > database_name-$(date +%Y%m%d).sql
文件最后修改時間
date命令的-r選項也可以用于打印文件的最后修改時間。例如命令date -r etc/hosts打印etc/hosts文件最后修改時間。
如果要修改文件時間戳,請使用touch命令。
date -r etc/hosts
設置系統時間和日期
通常不建議使用date命令手動設置系統時間和日期,因為在大多數Linux發行版中,系統時鐘使用ntp或systemd-timesyncd服務進行同步。
但是,如果要手動設置系統時鐘,可以使用date命令的--set選項。
例如命令date --set="20190601 17:30"將日期和時間設置為2019年6月1日下午5:30。
結論
至此,您應該對如何在Linux使用date命令有一個很好的了解。
-
Linux
+關注
關注
88文章
11760瀏覽量
219046 -
命令
+關注
關注
5文章
755瀏覽量
23758
發布評論請先 登錄
詳解date命令的基礎知識
評論