date命令是顯示或設置系統(tǒng)時間與日期
很多shell腳本里面需要打印不同格式的時間或日期,以及要根據(jù)時間和日期執(zhí)行操作。延時通常用于腳本執(zhí)行過程中提供一段等待的時間。日期可以以多種格式去打印,也可以使用命令設置固定的格式。在類UNIX系統(tǒng)中,日期被存儲為一個整數(shù),其大小為自世界標準時間(UTC)1970年1月1日0時0分0秒起流逝的秒數(shù)。
命令功能
- date 可以用來顯示或設定系統(tǒng)的日期與時間。
命令參數(shù)
- %H 小時(以00-23來表示)。
- %I 小時(以01-12來表示)。
- %K 小時(以0-23來表示)。
- %l 小時(以0-12來表示)。
- %M 分鐘(以00-59來表示)。
- %P AM或PM。
- %r 時間(含時分秒,小時以12小時AM/PM來表示)。
- %s 總秒數(shù)。起算時間為1970-01-01 00:00:00 UTC。
- %S 秒(以本地的慣用法來表示)。
- %T 時間(含時分秒,小時以24小時制來表示)。
- %X 時間(以本地的慣用法來表示)。
- %Z 市區(qū)。
- %a 星期的縮寫。
- %A 星期的完整名稱。
- %b 月份英文名的縮寫。
- %B 月份的完整英文名稱。
- %c 日期與時間。只輸入date指令也會顯示同樣的結果。
- %d 日期(以01-31來表示)。
- %D 日期(含年月日)。
- %j 該年中的第幾天。
- %m 月份(以01-12來表示)。
- %U 該年中的周數(shù)。
- %w 該周的天數(shù),0代表周日,1代表周一,以此類推。
- %x 日期(以本地的慣用法來表示)。
- %y 年份(以00-99來表示)。
- %Y 年份(以四位數(shù)來表示)。
- %n 在顯示時,插入新的一行。
- %t 在顯示時,插入tab。
- MM 月份(必要)
- DD 日期(必要)
- hh 小時(必要)
- mm 分鐘(必要)
- ss 秒(選擇性)
- 選擇參數(shù):
- -d<字符串> 顯示字符串所指的日期與時間。字符串前后必須加上雙引號。
- -s<字符串> 根據(jù)字符串來設置日期與時間。字符串前后必須加上雙引號。
- -u 顯示GMT。
- –help 在線幫助。
- –version 顯示版本信息
date -s設置時間
- date -s //設置當前時間,只有root權限才能設置,其他只能查看。
- date -s 20080523 //設置成20080523,這樣會把具體時間設置成空00:00:00
- date -s 01:01:01 //設置具體時間,不會對日期做更改
- date -s “01:01:01 2008-05-23″ //這樣可以設置全部時間
- date -s “01:01:01 20080523″ //這樣可以設置全部時間
- date -s “2008-05-23 01:01:01″ //這樣可以設置全部時間
- date -s “20080523 01:01:01″ //這樣可以設置全部時間
加減
- date +%Y%m%d //顯示前天年月日
- date +%Y%m%d --date="+1 day" //顯示前一天的日期
- date +%Y%m%d --date="-1 day" //顯示后一天的日期
- date +%Y%m%d --date="-1 month" //顯示上一月的日期
- date +%Y%m%d --date="+1 month" //顯示下一月的日期
- date +%Y%m%d --date="-1 year" //顯示前一年的日期
- date +%Y%m%d --date="+1 year" //顯示下一年的日期
顯示當前時間
> date
Mon Mar 1 22:09:51 CST 2021
> date '+%c'
Mon 01 Mar 2021 10:10:13 PM CST
> date '+%D'
03/01/21
> date '+%x'
03/01/2021
> date '+%T'
22:12:48
顯示日期和設定時間
// 顯示時間
> date '+%c'
Mon 01 Mar 2021 10:16:41 PM CST
//設定時間
> date --date 08:42:00
Mon 01 Mar 2021 08:42:00 PM CST
顯示時間后跳行,再顯示目前日期
> date '+%T%n%D'
22:21:01
03/01/21
顯示當前時間戳
> date +%s
時間戳轉換成時間
date -d @時間戳
>date -d @1614608735 +"%Y-%m-%d %H:%M:%S"
2021-03-01 22:25:35
時間轉換成時間戳
> date -d "2020-10-11 11:11:11" +"%s
1602385871
date -d參數(shù)使用
date 命令的另一個擴展是 -d 選項,該選項非常有用。使用這個功能強大的選項,通過將日期作為引號括起來的參數(shù)提供,您可以快速地查明一個特定的日期。-d 選項還可以告訴您,相對于當前日期若干天的究竟是哪一天,從現(xiàn)在開始的若干天或若干星期以后,或者以前(過去)。通過將這個相對偏移使用引號括起來,作為 -d 選項的參數(shù),就可以完成這項任務。
- date -d “nov 22” 今年的 11 月 22 日是星期三
- date -d ‘2 weeks’ 2周后的日期
- date -d ‘next monday’ (下周一的日期)
- date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d
- date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d
- date -d last-month +%Y%m(上個月是幾月)
- date -d next-month +%Y%m(下個月是幾月)
- 使用 ago 指令,您可以得到過去的日期:
- date -d ‘30 days ago’ (30天前的日期)
- 使用負數(shù)以得到相反的日期:
- date -d ‘dec 14 -2 weeks’ (相對:dec 14這個日期的兩周前的日期)
- date -d ‘-100 days’ (100天以前的日期)
- date -d ‘50 days’(50天后的日期)
原文鏈接
:https://rumenz.com/rumenbiji/linux-date.html
微信公眾號:入門小站