溫馨提示×

溫馨提示×

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

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

如何在linux中使用date命令

發(fā)布時間:2021-03-12 16:51:00 來源:億速云 閱讀:214 作者:Leah 欄目:系統(tǒng)運(yùn)維

如何在linux中使用date命令?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

date命令
  date命令的功能是顯示和設(shè)置系統(tǒng)日期和時間。
  該命令的一般格式為: date [選項(xiàng)] 顯示時間格式(以+開頭,后面接格式)
  date 設(shè)置時間格式
  命令中各選項(xiàng)的含義分別為:
  -d datestr, --date datestr 顯示由datestr描述的日期
  -s datestr, --set datestr 設(shè)置datestr 描述的日期
  -u, --universal 顯示或設(shè)置通用時間 時間域
  % H 小時(00..23)
  % I 小時(01..12)
  % k 小時(0..23)
  % l 小時(1..12)
  % M 分(00..59)
  % p 顯示出AM或PM
  % r 時間(hh:mm:ss AM或PM),12小時
  % s 從1970年1月1日00:00:00到目前經(jīng)歷的秒數(shù)
  % S 秒(00..59)
  % T 時間(24小時制)(hh:mm:ss)
  % X 顯示時間的格式(%H:%M:%S)
  % Z 時區(qū) 日期域
  % a 星期幾的簡稱( Sun..Sat)
  % A 星期幾的全稱( Sunday..Saturday)
  % b 月的簡稱(Jan..Dec)
  % B 月的全稱(January..December)
  % c 日期和時間( Mon Nov 8 14:12:46 CST 1999)
  % d 一個月的第幾天(01..31)
  % D 日期(mm/dd/yy)
  % h 和%b選項(xiàng)相同
  % j 一年的第幾天(001..366)
  % m 月(01..12)
  % w 一個星期的第幾天(0代表星期天)
  % W 一年的第幾個星期(00..53,星期一為第一天)
  % x 顯示日期的格式(mm/dd/yy)
  % y 年的最后兩個數(shù)字( 1999則是99)
  % Y 年(例如:1970,1996等)
  需要特別說明的是,只有超級用戶才能用date命令設(shè)置時間,一般用戶只能用date命令顯示時間。

下列環(huán)境變量將會影響到 date 命令的執(zhí)行效果。

LANG 確定在 LC_ALL 和相應(yīng)的環(huán)境變量(以 LC_ 開頭)都不指定語言環(huán)境的時候?qū)⒁褂玫娜笔≌Z言環(huán)境。
LC_ALL 確定用于覆蓋由 LANG 或任何以 LC_ 開頭的環(huán)境變量設(shè)置的任何語言環(huán)境類別值的語言環(huán)境。
LC_CTYPE 確定文本數(shù)據(jù)的字節(jié)序列解釋為字符時使用的語言環(huán)境(例如參數(shù)中單對多字節(jié)字符)。
LC_MESSAGES 決定寫信息應(yīng)使用的語言。
LC_TIME 確定由 date 寫入的日期和時間字符串的內(nèi)容。
NLSPATH 為處理 LC_MESSAGES 決定消息目錄的位置。
TZ 指定時間和日期使用的時區(qū),除非指定了 -u 選項(xiàng)。如果未設(shè)置 TZ 變量且未指定 -u 標(biāo)志,則使用非指定的系統(tǒng)缺省時區(qū)。
使用示例一:
#date //顯示當(dāng)前日期
#date -s //設(shè)置當(dāng)前時間,只有root權(quán)限才能設(shè)置,其他只能查看。
#date -s 20061010 //設(shè)置成20061010,這樣會把具體時間設(shè)置成空00:00:00
#date -s 12:23:23 //設(shè)置具體時間,不會對日期做更改
#date -s “12:12:23 2006-10-10″ //這樣可以設(shè)置全部時間
CST:中國標(biāo)準(zhǔn)時間(China Standard Time),這個解釋可能是針對RedHat Linux。
UTC:協(xié)調(diào)世界時,又稱世界標(biāo)準(zhǔn)時間,簡稱UTC,從英文國際時間/法文協(xié)調(diào)時間”Universal Time/Temps Cordonné”而來。中國大陸、香港、澳門、臺灣、蒙古國、新加坡、馬來西亞、菲律賓、澳洲西部的時間與UTC的時差均為+8,也就是UTC+8。
GMT:格林尼治標(biāo)準(zhǔn)時間(舊譯格林威治平均時間或格林威治標(biāo)準(zhǔn)時間;英語:Greenwich Mean Time,GMT)是指位于英國倫敦郊區(qū)的皇家格林尼治天文臺的標(biāo)準(zhǔn)時間,因?yàn)楸境踝游缇€被定義在通過那里的經(jīng)線。
設(shè)置完系統(tǒng)時間后,還需要同步到硬件時鐘上
# clock --systohc
硬件時鐘與系統(tǒng)時鐘同步:
# hwclock --hctosys
或者
# clock --hctosys
上面命令中,--hctosys表示Hardware Clock to SYStem clock。
系統(tǒng)時鐘和硬件時鐘同步:
# hwclock --systohc
或者
# clock --systohc

使用示例二:

用指定的格式顯示時間。
  $ date ‘+This date now is =>%x ,time is now =>%X ,thank you !'
  This date now is =>11/12/99 ,time is now =>17:53:01 ,thank you !
  用預(yù)定的格式顯示當(dāng)前的時間。
  # date
  Fri Nov 26 15:20:18 CST 1999
  設(shè)置時間為下午14點(diǎn)36分。
  # date -s 14:36:00
  Fri Nov 26 14:15:00 CST 1999
  設(shè)置時間為1999年11月28號。
  # date -s 991128
  Sun Nov 28 00:00:00 CST 1999
設(shè)置一天前
date --date "1 days ago" +"%Y-%m-%d"
Date 命令參數(shù)小技巧
由于Linux對man date -d 參數(shù)說的比較模糊,故舉例如下:
# -d, --date=STRING display time described by STRING, not `now'
For Linux
[root@jb51.net ~ ]# date -d next-day +%Y%m%d
20060328
[root@jb51.net ~ ]# date -d last-day +%Y%m%d
20060326
[root@jb51.net ~ ]# date -d yesterday +%Y%m%d
20060326
[root@jb51.net ~ ]# date -d tomorrow +%Y%m%d
20060328
[root@jb51.net ~ ]# date -d last-month +%Y%m
200602
[root@jb51.net ~ ]# date -d next-month +%Y%m
200604
[root@jb51.net ~ ]# date -d next-year +%Y
2007
------------------------------------------
而FreeBSD則不同;舉例如下:
For FreeBSD
[root@jb51.net ~]# date -v -1d +%Y%m%d
20060326
[root@jb51.net ~]# date -v -1m +%Y%m%d
20060227
[root@jb51.net ~]# date -v -1y +%Y%m%d
20050327
使用示例三:
在linux環(huán)境下要取得幾天前的時期只要使用
date -d "x days ago" +%Y%m%d
x用數(shù)字代替,如果需要幾天前的直接寫正數(shù),如果要幾天后的日期直接寫負(fù)數(shù)即可;
date -d "x weeks ago" +%Y%m%d
x用數(shù)字代替,如果需要幾周前的直接寫正數(shù),如果要幾周后的日期直接寫負(fù)數(shù)即可;
date -d "x years ago" +%Y%m%d
x用數(shù)字代替,如果需要幾年前的直接寫正數(shù),如果要幾年后的日期直接寫負(fù)數(shù)即可;
看下面例子:
[root@jb51.net ~]# date +%Y%m%d
20100107
上面是今天的日期20100107
[root@jb51.net ~]# date -d "2 days ago" +%Y%m%d
20100105
上面是兩天前的日期
[root@jb51.net ~]# date -d "4 days ago" +%Y%m%d
20100103
上面是四天前的日期
[root@jb51.net ~]# date -d "-1 days ago" +%Y%m%d
20100108
上面是一天后的日期
[root@jb51.net ~]# date -d "-2 days ago" +%Y%m%d
20100109
上面是兩天后的日期
[root@jb51.net ~]# date -d "1 week ago" +%Y%m%d
20091231
上面是一周前的日期
[root@jb51.net ~]# date -d "1 year ago" +%Y%m%d
20090107
上面是一年前的日期

看完上述內(nèi)容,你們掌握如何在linux中使用date命令的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI