溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Linux中的date命令

發布時間:2022-01-21 10:52:36 來源:億速云 閱讀:583 作者:小新 欄目:開發技術

這篇文章主要介紹了如何使用Linux中的date命令,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

Linux常用命令date命令可以用來設置和顯示系統當前時間,特別是在有一些Shell命令里面用到date命令來做日期的不同的顯示,所以該命令也是非常需要掌握的一個命令。

如何使用Linux中的date命令

date

顯示或設置系統時間與日期

概要

 date [OPTION]... [+FORMAT]
 date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

主要用途

  • 轉換時間到選定的格式,默認為當前。

  • 設置系統時間。

參數

format:輸出的時間格式。

 format可用的轉義序列如下:
 
 %%      百分號
 %a      當地縮寫的工作日名稱(例如,Sun)
 %A      當地完整的工作日名稱(例如,Sunday)
 %b      當地縮寫的月份名稱(例如,Jan)
 %B      當地完整的月份名稱(例如,January)
 %c      當地的日期和時間(例如,Thu Mar  3 23:05:25 2005)
 %C      世紀,和%Y類似,但是省略后兩位(例如,20)
 %d      一月中的一天(例如,01)
 %D      日期,等價于%m/%d/%y
 %e      一月中的一天,格式使用空格填充,等價于%_d
 %F      完整的日期;等價于%+4Y-%m-%d
 %g      ISO標準計數周的年份的最后兩位數字
 %G      ISO標準計數周的年份,通常只對%V有用
 %h      等價于%b
 %H      小時,范圍(00..23)
 %I      小時,范圍(00..23)
 %j      一年中的一天,范圍(001..366)
 %k      小時,使用空格填充,范圍(0..23),等價于%_H
 %l      小時,使用空格填充,范圍(1..12),等價于%_I
 %m      月,范圍(01..12)
 %M      分鐘,范圍(00..59)
 %n      換行符
 %N      納秒,范圍(000000000..000000000)
 %p      用于表示當地的AM或PM,如果未知則為空白
 %P      類似于%p,但用小寫表示
 %q      季度,范圍(1..4)
 %r      當地以12小時表示的時鐘時間(例如,11:11:04 PM)
 %R      24小時每分鐘;等價于%H:%M
 %s      自協調世界時1970年01月01日00時00分以來的秒數
 %S      秒數,范圍(00..60)
 %t      水平制表符
 %T      時間;等價于%H:%M:%S
 %u      一周中的一天(1..7),1代表星期一
 %U      一年中的第幾周,周日作為一周的起始(00..53)
 %V      ISO標準計數周,該方法將周一作為一周的起始(01..53)
 %w      一周中的一天(0..6),0代表星期天
 %W      一年中的第幾周,周一作為一周的起始(00..53)
 %x      當地的日期表示(例如,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)
 
 默認情況下,日期用零填充數字字段;以下可選的符號可以跟在'%'后面:
 
 -      (連字符) 不要填充相應的字段。
 _      (下劃線) 使用空格填充相應的字段。
 0      (數字0) 使用數字0填充相應的字段。
 +      用數字0填充,未來年份大于4位數字則在前面加上'+'號。
 ^      允許的情況下使用大寫。
 #      允許的情況下將默認的大寫轉換為小寫,默認的小寫轉換為大寫。
 
 在任何標志之后都有一個可選的字段寬度,如小數;然后是一個可選的修飾符,在可用的情況下,使用E來使用當地語言環境的替代表示,
 使用O來使用當地語言環境的替代數字符號。

選項

 長選項與短選項等價
 
 -d, --date=STRING          解析字符串并按照指定格式輸出,字符串不能是'now'。
 --debug                    注釋已解析的日期,并將有疑問的用法發送到標準錯誤。
 -f, --file=DATEFILE        類似于--date; 一次從DATEFILE處理一行。
 -I[FMT], --iso-8601[=FMT]  按照ISO 8601格式輸出,FMT可以為'date'(默認),'hours','minutes','seconds','ns'。
                            例如:2006-08-14T02:34:56-06:00
 -R, --rfc-email            按照RFC 5322格式輸出,例如: Mon, 14 Aug 2006 02:34:56 -0600
 --rfc-3339=FMT             按照RFC 3339格式輸出,FMT可以為'date', 'seconds','ns'中的一個,
                            例如:2006-08-14 02:34:56-06:00
 -r, --reference=FILE       顯示文件的上次修改時間。
 -s, --set=STRING           根據字符串設置系統時間。
 -u, --utc, --universal     顯示或設置世界協調時(UTC)。
 --help                     顯示幫助信息并退出。
 --version                  顯示版本信息并退出。

返回值

返回狀態為成功除非給出了非法選項或非法參數。

例子

 # 格式化輸出:
 date +"%Y-%m-%d"
 2009-12-07
 
 # 輸出昨天日期:
 date -d "1 day ago" +"%Y-%m-%d"
 2012-11-19
 
 # 2秒后輸出:
 date -d "2 second" +"%Y-%m-%d %H:%M.%S"
 2012-11-20 14:21.31
 
 # 傳說中的 1234567890 秒:
 date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%M:%S"
 # 或者
 date -d@1234567890 +"%F %T"
 # 輸出結果
 2009-02-13 23:02:30
 
 # 時間格式轉換:
 date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S"
 # 輸出結果
 2009/12/12 00:00.00
 
 # apache格式轉換:
 date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S"
 # 輸出結果
 2009-12-05 00:00.37
 
 # 格式轉換后時間游走:
 date -d "Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"
 # 輸出結果
 2007-12-05 00:00.37
 
 # 時間加減操作:
 date +%Y%m%d                   # 顯示年月日
 date -d "+1 day" +%Y%m%d       # 顯示前一天的日期
 date -d "-1 day" +%Y%m%d       # 顯示后一天的日期
 date -d "-1 month" +%Y%m%d     # 顯示上一月的日期
 date -d "+1 month" +%Y%m%d     # 顯示下一月的日期
 date -d "-1 year" +%Y%m%d      # 顯示前一年的日期
 date -d "+1 year" +%Y%m%d      # 顯示下一年的日期
 
 # 設定時間:
 date -s                         # 設置當前時間,只有root權限才能設置,其他只能查看
 date -s 20120523                # 設置成20120523,這樣會把具體時間設置成00:00:00
 date -s 01:01:01                # 設置具體時間,不會對日期做更改
 date -s "01:01:01 2012-05-23"   # 這樣可以設置全部時間
 date -s "01:01:01 20120523"     # 這樣可以設置全部時間
 date -s "2012-05-23 01:01:01"   # 這樣可以設置全部時間
 date -s "20120523 01:01:01"     # 這樣可以設置全部時間
 
 # 有時需要檢查一組命令花費的時間:
 start=$(date +%s)
 nmap wangchujiang.com &> /dev/null
 end=$(date +%s)
 difference=$(( end - start ))
 # 顯示執行時間
 echo $difference seconds.
 
 # 當你考慮輸出帶有時間的字符串時,例如(Current time: 2019/05/19):
 # 通常使用的方法:
 echo "Current time: $(date +"%Y/%m/%d")"
 # 另一種方法:
 suffix='Current time:'
 # 注意如果換成單引號就不能替換變量了。
 date +"${suffix} %Y/%m/%d"

注意

  1. 該命令是GNU coreutils包中的命令,相關的幫助信息請查看man -s 1 date或info coreutils 'date invocation'。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何使用Linux中的date命令”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女