基本用法
date [選項] 顯示時間格式(以+開頭,后面接格式)
date可以用來顯示和設定系統(tǒng)的日期和時間。
使用說明:
命令參數(shù):
-d, –date=STRING 顯示STRING指定的時間
-f, –file=DATEFILE 類似–date參數(shù)顯示DATEFILE文件中的每行時間
-r, –reference=FILE 顯示文件的最后修改時間
-R, –rfc-2822 以RFC-2822兼容日期格式顯示時間
-s, –set=STRING 設置時間為STRING
-u, –utc, –universal 顯示或設定為Coordinated Universal Time時間格式
#date //顯示當前日期
#date -s //設置當前時間,只有root權限才能設置,其他只能查看。
#date -s 20061010 //設置成20061010,這樣會把具體時間設置成空00:00:00
#date -s 12:23:23 //設置具體時間,不會對日期做更改
#date -s “12:12:23 2006-10-10″ //這樣可以設置全部時間
時間顯示參數(shù)
不加任何參數(shù)
root@ubuntu:~# date
Sun Sep 18 00:20:35 PDT 2016
直接打印可讀性很差,因此要各種參數(shù)組合
當添加%
表示時間的顯示格式,當不加%
則表示時間的設定。只有類似root用戶才有權限設定系統(tǒng)時間。
并且當修改了系統(tǒng)時間后,需要用clock -w
將系統(tǒng)時間寫入CMOS,以防止下次啟動時間不對。
時間格式為MMDDhhmm[[CC]YY][.ss]
,其中 MM 為月份,DD 為日,hh 為小時,mm 為分鐘,CC 為年份前兩位數(shù)字,YY 為年份后兩位數(shù)字,ss 為秒數(shù)
時間顯示格式
?%% 字符%
?%a 星期的縮寫(Sun..Sat)
?%A 星期的完整名稱 (Sunday..Saturday)
?%b 月份的縮寫(Jan..Dec)
?%B 月份的完整名稱(January..December)
?%c 日期時間(Sat Nov 04 12:02:33 EST 1989)
?%C 世紀(年份除100后去整) [00-99]
?%d 一個月的第幾天(01..31)
?%D 日期(mm/dd/yy)
?%e 一個月的第幾天 ( 1..31)
?%F 日期,同%Y-%m-%d
?%g 年份(yy)
?%G 年份(yyyy)
?%h 同%b
?%H 小時(00..23)
?%I 小時(01..12)
?%j 一年的第幾天(001..366)
?%k 小時( 0..23)
?%l 小時( 1..12)
?%m 月份(01..12)
?%M 分鐘(00..59)
?%n 換行
?%N 納秒(000000000..999999999)
?%p AM or PM
?%P am or pm
?%r 12小時制時間(hh:mm:ss [AP]M)
?%R 24小時制時間(hh:mm)
?%s 從00:00:00 1970-01-01 UTC開始的秒數(shù)
?%S 秒(00..60)
?%t 制表符
?%T 24小時制時間(hh:mm:ss)
?%u 一周的第幾天(1..7); 1 表示星期一
?%U 一年的第幾周,周日為每周的第一天(00..53)
?%V 一年的第幾周,周一為每周的第一天 (01..53)
?%w 一周的第幾天 (0..6); 0 代表周日
?%W 一年的第幾周,周一為每周的第一天(00..53)
?%x 日期(mm/dd/yy)
?%X 時間(%H:%M:%S)
?%y 年份(00..99)
?%Y 年份 (1970…)
?%z RFC-2822 風格數(shù)字格式時區(qū)(-0500)
?%Z 時區(qū)(e.g., EDT), 無法確定時區(qū)則為空
root@ubuntu:~# date +"%H%M%S"
003528
root@ubuntu:~# date +"%H-%M-%S"
00-36-39
root@ubuntu:~# date +"%H:%M:%S"
00:37:08
root@ubuntu:~# date +"%H:%M:%S %Z"
00:37:38 PDT
root@ubuntu:~# date +"%H:%M:%S %t%Z"
00:37:44 PDT
root@ubuntu:~# date +"%H:%M:%S %n%Z"
00:37:51
PDT
root@ubuntu:~# date +"%I:%M:%S %p"
12:39:41 AM
root@ubuntu:~# date +"%A %B %d"
Sunday September 18
root@ubuntu:~# date +"%a %b %d"
Sun Sep 18
當希望把日期里的0去掉時,則可以在%
和參數(shù)名之間添加-
。
root@ubuntu:~# date '+%-H:%-M:%-S'
0:45:46
date -d詳細用法
root@ubuntu:~# date
Sun Sep 18 01:11:45 PDT 2016
root@ubuntu:~# date -d next-day +%Y%m%d
20160919
root@ubuntu:~# date -d last-day +%Y%m%d
20160917
root@ubuntu:~# date -d yesterday +%Y%m%d
20160917
root@ubuntu:~# date -d tomorrow +%Y%m%d
20160919
root@ubuntu:~# date -d last-month +%Y%m
201608
root@ubuntu:~# date -d next-month +%Y%m
201610
root@ubuntu:~# date -d next-year +%Y
2017
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ù)即可;
修改時區(qū)
可以直接用tzselect
命令來修改時區(qū),修改完時區(qū)后需要將TZ='Asia/Shanghai'; export TZ
寫入到profile文件中
root@ubuntu:~# vi .profile
# ~/.profile:
executed by Bourne-compatible login shells.
if [ "$BASH" ]; then
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
fi
mesg n || true
TZ='Asia/Shanghai'; export TZ
root@ubuntu:~# logout
root@ubuntu:~# date
Sun Sep 18 16:20:06 CST 2016