歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux date命令參數及用法詳解--Linux查看修改系統時間

Linux date命令參數及用法詳解--Linux查看修改系統時間

日期:2017/2/28 15:49:46   编辑:Linux教程

date命令
  date命令的功能是顯示和設置系統日期和時間。
  該命令的一般格式為: date [選項] 顯示時間格式(以+開頭,後面接格式)
  date 設置時間格式
  命令中各選項的含義分別為:
  -d datestr, --date datestr 顯示由datestr描述的日期
  -s datestr, --set datestr 設置datestr 描述的日期
  -u, --universal 顯示或設置通用時間 時間域
  % 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到目前經歷的秒數
  % S 秒(00..59)
  % T 時間(24小時制)(hh:mm:ss)
  % X 顯示時間的格式(%H:%M:%S)
  % Z 時區 日期域
  % 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選項相同
  % j 一年的第幾天(001..366)
  % m 月(01..12)
  % w 一個星期的第幾天(0代表星期天)
  % W 一年的第幾個星期(00..53,星期一為第一天)
  % x 顯示日期的格式(mm/dd/yy)
  % y 年的最後兩個數字( 1999則是99)
  % Y 年(例如:1970,1996等)
  需要特別說明的是,只有超級用戶才能用date命令設置時間,一般用戶只能用date命令顯示時間。

下列環境變量將會影響到 date 命令的執行效果。 資料整理 www.linuxidc.com

LANG 確定在 LC_ALL 和相應的環境變量(以 LC_ 開頭)都不指定語言環境的時候將要使用的缺省語言環境。
LC_ALL 確定用於覆蓋由 LANG 或任何以 LC_ 開頭的環境變量設置的任何語言環境類別值的語言環境。
LC_CTYPE 確定文本數據的字節序列解釋為字符時使用的語言環境(例如參數中單對多字節字符)。
LC_MESSAGES 決定寫信息應使用的語言。
LC_TIME 確定由 date 寫入的日期和時間字符串的內容。
NLSPATH 為處理 LC_MESSAGES 決定消息目錄的位置。
TZ 指定時間和日期使用的時區,除非指定了 -u 選項。如果未設置 TZ 變量且未指定 -u 標志,則使用非指定的系統缺省時區。

使用示例一:

#date //顯示當前日期

#date -s //設置當前時間,只有root權限才能設置,其他只能查看。

#date -s 20061010 //設置成20061010,這樣會把具體時間設置成空00:00:00

#date -s 12:23:23 //設置具體時間,不會對日期做更改

#date -s “12:12:23 2006-10-10″ //這樣可以設置全部時間

CST:中國標准時間(China Standard Time),這個解釋可能是針對RedHat Linux。

UTC:協調世界時,又稱世界標准時間,簡稱UTC,從英文國際時間/法文協調時間”Universal Time/Temps Cordonné”而來。中國大陸、香港、澳門、台灣、蒙古國、新加坡、馬來西亞、菲律賓、澳洲西部的時間與UTC的時差均為+8,也就是UTC+8。

GMT:格林尼治標准時間(舊譯格林威治平均時間或格林威治標准時間;英語:Greenwich Mean Time,GMT)是指位於英國倫敦郊區的皇家格林尼治天文台的標准時間,因為本初子午線被定義在通過那裡的經線。

設置完系統時間後,還需要同步到硬件時鐘上
# clock --systohc

硬件時鐘與系統時鐘同步:

# hwclock --hctosys
或者
# clock --hctosys

上面命令中,--hctosys表示Hardware Clock to SYStem clock。

系統時鐘和硬件時鐘同步:

# 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 !
  用預定的格式顯示當前的時間。
  # date
  Fri Nov 26 15:20:18 CST 1999
  設置時間為下午14點36分。
  # date -s 14:36:00
  Fri Nov 26 14:15:00 CST 1999
  設置時間為1999年11月28號。
  # date -s 991128
  Sun Nov 28 00:00:00 CST 1999
設置一天前
date --date "1 days ago" +"%Y-%m-%d"
Date 命令參數小技巧

由於Linux對man date -d 參數說的比較模糊,故舉例如下:
# -d, --date=STRING display time described by STRING, not `now'
For Linux
[[email protected] ~ ]# date -d next-day +%Y%m%d
20060328
[[email protected] ~ ]# date -d last-day +%Y%m%d
20060326
[[email protected] ~ ]# date -d yesterday +%Y%m%d
20060326
[[email protected] ~ ]# date -d tomorrow +%Y%m%d
20060328
[[email protected] ~ ]# date -d last-month +%Y%m
200602
[[email protected] ~ ]# date -d next-month +%Y%m
200604
[[email protected] ~ ]# date -d next-year +%Y
2007
------------------------------------------
而FreeBSD則不同;舉例如下:
For FreeBSD
[[email protected] ~]# date -v -1d +%Y%m%d
20060326
[[email protected] ~]# date -v -1m +%Y%m%d
20060227
[[email protected] ~]# date -v -1y +%Y%m%d
20050327
使用示例三:
在linux環境下要取得幾天前的時期只要使用
date -d "x days ago" +%Y%m%d
x用數字代替,如果需要幾天前的直接寫正數,如果要幾天後的日期直接寫負數即可;
date -d "x weeks ago" +%Y%m%d
x用數字代替,如果需要幾周前的直接寫正數,如果要幾周後的日期直接寫負數即可;
date -d "x years ago" +%Y%m%d
x用數字代替,如果需要幾年前的直接寫正數,如果要幾年後的日期直接寫負數即可;
看下面例子:
[[email protected] ~]# date +%Y%m%d
20100107
上面是今天的日期20100107
[[email protected] ~]# date -d "2 days ago" +%Y%m%d
20100105

上面是兩天前的日期
[[email protected] ~]# date -d "4 days ago" +%Y%m%d
20100103
上面是四天前的日期

[[email protected] ~]# date -d "-1 days ago" +%Y%m%d
20100108
上面是一天後的日期
[[email protected] ~]# date -d "-2 days ago" +%Y%m%d
20100109
上面是兩天後的日期
[[email protected] ~]# date -d "1 week ago" +%Y%m%d
20091231
上面是一周前的日期
[[email protected] ~]# date -d "1 year ago" +%Y%m%d
20090107
上面是一年前的日期

Copyright © Linux教程網 All Rights Reserved