每天一个linux命令(37):date命令
From: http://www.cnblogs.com/peida/archive/2012/12/13/2815687.html
在linux環境中,不管是編程還是其他維護,時間是必不可少的,也經常會用到時間的運算,熟練運用date命令來表示自己想要表示的時間,肯定可以給自己的工作帶來諸多方便。
1.命令格式:
? date?[參數]...?[+格式]
2.命令功能:
date?可以用來顯示或設定系統的日期與時間。
3.命令參數:
必要參數:
%H?小時(以00-23來表示)。?
%I?小時(以01-12來表示)。?
%K?小時(以0-23來表示)。?
%l?小時(以0-12來表示)。?
%M?分鐘(以00-59來表示)。?
%P?AM或PM。?
%r?時間(含時分秒,小時以12小時AM/PM來表示)。?
%s?總秒數。起算時間為1970-01-01?00:00:00?UTC。?
%S?秒(以本地的慣用法來表示)。?
%T?時間(含時分秒,小時以24小時制來表示)。?
%X?時間(以本地的慣用法來表示)。?
%Z?市區。?
%a?星期的縮寫。?
%A?星期的完整名稱。?
%b?月份英文名的縮寫。?
%B?月份的完整英文名稱。?
%c?日期與時間。只輸入date指令也會顯示同樣的結果。?
%d?日期(以01-31來表示)。?
%D?日期(含年月日)。?
%j?該年中的第幾天。?
%m?月份(以01-12來表示)。?
%U?該年中的周數。?
%w?該周的天數,0代表周日,1代表周一,異詞類推。?
%x?日期(以本地的慣用法來表示)。?
%y?年份(以00-99來表示)。?
%Y?年份(以四位數來表示)。?
%n?在顯示時,插入新的一行。?
%t?在顯示時,插入tab。?
MM?月份(必要)?
DD?日期(必要)?
hh?小時(必要)?
mm?分鐘(必要)
ss?秒(選擇性)?
選擇參數:
-d<字符串>? 顯示字符串所指的日期與時間。字符串前后必須加上雙引號。?
-s<字符串>? 根據字符串來設置日期與時間。字符串前后必須加上雙引號。?
-u? 顯示GMT。?
--help? 在線幫助。?
--version? 顯示版本信息?
4.使用說明:
1.在顯示方面,使用者可以設定欲顯示的格式,格式設定為一個加號后接數個標記,其中可用的標記列表如下:?%?:??打印出?%:
%n?:?下一行
%t?:?跳格
%H?:?小時(00..23)
%I?:?小時(01..12)
%k?:?小時(0..23)
%l?:?小時(1..12)
%M?:?分鐘(00..59)
%p?:?顯示本地?AM?或?PM
%r?:?直接顯示時間?(12?小時制,格式為?hh:mm:ss?[AP]M)
%s?:?從?1970?年?1?月?1?日?00:00:00?UTC?到目前為止的秒數
%S?:?秒(00..61)
%T?:?直接顯示時間?(24?小時制)
%X?:?相當于?%H:%M:%S
%Z?:?顯示時區?%a?:?星期幾?(Sun..Sat)
%A?:?星期幾?(Sunday..Saturday)
%b?:?月份?(Jan..Dec)
%B?:?月份?(January..December)
%c?:?直接顯示日期與時間
%d?:?日?(01..31)
%D?:?直接顯示日期?(mm/dd/yy)
%h?:?同?%b
%j?:?一年中的第幾天?(001..366)
%m?:?月份?(01..12)
%U?:?一年中的第幾周?(00..53)?(以?Sunday?為一周的第一天的情形)
%w?:?一周中的第幾天?(0..6)
%W?:?一年中的第幾周?(00..53)?(以?Monday?為一周的第一天的情形)
%x?:?直接顯示日期?(mm/dd/yy)
%y?:?年份的最后兩位數字?(00.99)
%Y?:?完整年份?(0000..9999)
2.在設定時間方面:
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″?//這樣可以設置全部時間
3.加減:
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"??//顯示下一年的日期
5.使用實例:
實例1:顯示當前時間
命令:
date
date?'+%c'
date?'+%D'
date?'+%x'
date?'+%T'
date?'+%X'
輸出:
[root@localhost?~]#?date
2012年?12月?08日?星期六?08:31:35?CST
[root@localhost?~]#?date?'+%c'
2012年12月08日?星期六?08時34分44秒
[root@localhost?~]#?date?'+%D'
12/08/12[root@localhost?~]#?date?'+%x'
2012年12月08日
[root@localhost?~]#?date?'+%T'
08:35:36[root@localhost?~]#?date?'+%X'
08時35分54秒
[root@localhost?~]#
說明:
實例2:顯示日期和設定時間
命令:
date?--date?08:42:00
輸出:
[root@localhost?~]#?date?'+%c'
2012年12月08日?星期六?08時41分37秒
[root@localhost?~]#?date?--date?08:42:00
2012年?12月?08日?星期六?08:42:00?CST
[root@localhost?~]#?date?'+%c'?--date?08:45:00
2012年12月08日?星期六?08時45分00秒
[root@localhost?~]#
說明:
實例3:date?-d參數使用
命令:
輸出:
[root@localhost?~]#?date?-d?"nov?22"
2012年?11月?22日?星期四?00:00:00?CST
[root@localhost?~]#?date?-d?'2?weeks'
2012年?12月?22日?星期六?08:50:21?CST
[root@localhost?~]#?date?-d?'next?monday'
2012年?12月?10日?星期一?00:00:00?CST
[root@localhost?~]#??date?-d?next-day?+%Y%m%d
20121209[root@localhost?~]#?date?-d?tomorrow?+%Y%m%d
20121209[root@localhost?~]#?date?-d?last-day?+%Y%m%d
20121207[root@localhost?~]#?date?-d?yesterday?+%Y%m%d
20121207[root@localhost?~]#?date?-d?last-month?+%Y%m
201211[root@localhost?~]#?date?-d?next-month?+%Y%m
201301[root@localhost?~]#?date?-d?'30?days?ago'?
2012年?11月?08日?星期四?08:51:37?CST
[root@localhost?~]#?date?-d?'-100?days'?
2012年?08月?30日?星期四?08:52:03?CST
[root@localhost?~]#??date?-d?'dec?14?-2?weeks'
2012年?11月?30日?星期五?00:00:00?CST
[root@localhost?~]#?date?-d?'50?days'
2013年?01月?27日?星期日?08:52:27?CST
說明:
date?命令的另一個擴展是?-d?選項,該選項非常有用。使用這個功能強大的選項,通過將日期作為引號括起來的參數提供,您可以快速地查明一個特定的日期。-d?選項還可以告訴您,相對于當前日期若干天的究竟是哪一天,從現在開始的若干天或若干星期以后,或者以前(過去)。通過將這個相對偏移使用引號括起來,作為?-d?選項的參數,就可以完成這項任務。
具體說明如下:
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天前的日期)
使用負數以得到相反的日期:
date?-d?'dec?14?-2?weeks'?(相對:dec?14這個日期的兩周前的日期)
date?-d?'-100?days'?(100天以前的日期)
date?-d?'50?days'(50天后的日期)
實例4:顯示月份和日數
命令:
date??'+%B?%d'
輸出:
[root@localhost?~]#?date??'+%B?%d'?
十二月?08[root@localhost?~]#
說明:
實例5:顯示時間后跳行,再顯示目前日期?
命令:
date?'+%T%n%D'
輸出:
[root@localhost?~]#?date?'+%T%n%D'
09:00:30
12/08/12[root@localhost?~]#
總結
以上是生活随笔為你收集整理的每天一个linux命令(37):date命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Feign如何针对单个服务屏蔽Hystr
- 下一篇: 时间处理总结(二)oracle