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
+關注
關注
87文章
11342瀏覽量
210139 -
命令
+關注
關注
5文章
696瀏覽量
22075
發布評論請先 登錄
相關推薦
評論