date命令 date命令的功能是顯示和設置系統(tǒng)日期和時間。 該命令的一般格式為: 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到目前經(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選項相同 % j 一年的第幾天(001..366) % m 月(01..12) % w 一個星期的第幾天(0代表星期天) % W 一年的第幾個星期(00..53,星期一為第一天) % x 顯示日期的格式(mm/dd/yy) % y 年的最后兩個數(shù)字( 1999則是99) % Y 年(例如:1970,1996等) 需要特別說明的是,只有超級用戶才能用date命令設置時間,一般用戶只能用date命令顯示時間。
用指定的格式顯示時間。 $ date lsquo;+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 命令參數(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ù),如果要幾天后的日期直接寫負數(shù)即可; date -d "x weeks ago" +%Y%m%d x用數(shù)字代替,如果需要幾周前的直接寫正數(shù),如果要幾周后的日期直接寫負數(shù)即可; date -d "x years ago" +%Y%m%d x用數(shù)字代替,如果需要幾年前的直接寫正數(shù),如果要幾年后的日期直接寫負數(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 上面是一年前的日期