1. 程式人生 > >Linux命令之date

Linux命令之date

用途說明

date命令可以用來顯示和修改系統日期時間,注意不是time命令。

常用引數

格式:date

顯示當前日期時間。

格式:date mmddHHMM           # 簡而言之,就是“月日時分”

格式:date mmddHHMMYYYY

格式:date mmddHHMM.SS

格式:date mmddHHMMYYYY.SS

設定當前日期時間,只有root使用者才能執行,執行完之後還要執行 clock -w 來同步到硬體時鐘。

mm為月份,dd為日期,HH為小時數,MM為分鐘數,YYYY為年份,SS為秒數。

格式:date +FORMAT

根據指定格式顯示當前時間。比如 date +%Y-%m-%d 就是以 YYYY-mm-dd 的形式顯示當前日期,其中YYYY是年份,mm為月份,dd為日期。

常用FORMAT

%Y  YYYY格式的年份(Year)

%m  mm格式的月份(),01-12

%d   dd格式的日期(day of month),01-31

%H   HH格式的小時數(),00-23

%M  MM格式的分鐘數(),00-59

%S   SS格式的秒數(),00-59

%F   YYYY-mm-dd格式的完整日期(Full date),同%Y-%m-%d

%T   HH-MM-SS格式的時間(Time),同%H:%M:%S

%s   自1970年以來的秒數。C函式time(&t) 或者Java中 System.currentTimeMillis()/1000, new Date().getTime()/1000

%w   星期幾,0-6,0表示星期天

%u   星期幾,1-7,7表示星期天

注意以上格式是可以任意組合的,還可以包括非格式串,比如 date "+今天是%Y-%d-%m,現在是$H:%M:%S"

更多格式 man date 或 info date

格式:date -d STRING

格式:date --date=STRING

格式:date -d STRING +FORMAT

顯示用STRING指定的日期時間(display time described by STRING, not ‘now’)。

格式:date -s STRING

格式:date --set=STRING

設定當前時間為STRING指定的日期時間。

STRING可謂變化多樣,支援很多種日期時間的描述方式。下面列舉一些常用的日期表示方式,希望能夠舉一反三。

指定日期:

date -d YYYY-mm-dd

指定時間,日期是今天:

date -d HH:MM:SS

指定日期時間:

date -d "YYYY-mm-dd HH:MM:SS"

指定1970年以來的秒數:

date -d '1970-01-01 1251734400 sec utc'      (2009年 09月 01日 星期二 00:00:00 CST)

date -d '1970-01-01 1314177812 sec utc'      (2011年 08月 24日 星期三 17:23:32 CST)

今天:

date

date -d today

date -d now

明天:

date -d tomorrow

date -d next-day

date -d next-days

date -d "next day"

date -d "next days"

date -d "+1 day"

date -d "+1 days"

date -d "1 day"

date -d "1 days"

date -d "-1 day ago"

date -d "-1 days ago"

昨天:

date -d yesterday

date -d last-day

date -d last-days

date -d "last day"

date -d "last days"

date -d "-1 day"

date -d "-1 days"

date -d "1 day ago"

date -d "1 days ago"

前天:

date -d "2 day ago"

date -d "2 days ago"

date -d "-2 day"

date -d "-2 days"

大前天:

date -d "3 day ago"

date -d "3 days ago"

date -d "-3 day"

date -d "-3 days"

上週,一週前:

date -d "1 week ago"

date -d "1 weeks ago"

上個星期五(不是上週五):

date -d "last-friday"

date -d "last friday"

上月,一月前:

date -d last-month

date -d last-months

date -d "-1 month"

date -d "-1 months"

下月,一月後:

date -d next-month

date -d next-months

date -d "+1 month"

date -d "+1 months"

去年,一年前:

date -d last-year

date -d last-years

date -d "-1 year"

date -d "-1 years"

明年,一年後:

date -d next-year

date -d next-years

date -d "+1 year"

date -d "+1 years"

一小時前:

date -d "last-hour"

date -d "last-hours"

date -d "1 hour ago"

date -d "1 hours ago"

一小時後:

date -d "1 hour"

date -d "1 hours"

一分鐘前:

date -d "1 minute ago"

date -d "1 minutes ago"

一分鐘後:

date -d "1 minute"

date -d "1 minutes"

一秒前:

date -d "1 second ago"

date -d "1 seconds ago"

一秒後:

date -d "1 second"

date -d "1 seconds"

使用示例

示例一 顯示和設定日期時間

[[email protected] ct08]# date 
2011年 08月 20日 星期六 17:37:11 CST
[[email protected] ct08]# date 08220942 
2011年 08月 22日 星期一 09:42:00 CST

[[email protected] ct08]# clock -w 
[[email protected] ct08]# date 
2011年 08月 22日 星期一 09:42:01 CST
[[email protected] ct08]#

示例二 顯示指定日期時間

[[email protected] ~]# date 
2011年 08月 23日 星期二 07:41:03 CST
[[email protected] ~]# date -d next-day +%Y%m%d 
20110824
[[email protected] ~]# date -d next-day +%F 
2011-08-24
[[email protected] ~]# date -d next-day '+%F %T' 
2011-08-24 07:41:47
[[email protected] ~]# date -d last-day '+%F %T' 
2011-08-22 07:43:46
[[email protected] ~]# 
[[email protected] ~]# date -d yesterday '+%F %T' 
2011-08-22 07:44:31
[[email protected] ~]# date -d tomorrow '+%F %T' 
2011-08-24 07:45:19
[[email protected] ~]# date -d last-month +%Y%m 
201107
[[email protected] ~]# date -d next-month +%Y%m 
201109
[[email protected] ~]# date -d next-year +%Y 
2012
[[email protected] ~]#

示例三 寫一個指令碼來計算母親節和父親節的日期

母親節(每年5月的第二個星期日 )

  2005年5月8日

  2006年5月14日

  2007年5月13日

  2008年5月11日

  2009年5月10日

  2010年5月9日

  2011年5月8日

  2012年5月13日

父親節(6月第三個星期日),下面是最近幾年的父親節日期

  2005年6月19日
  2006年6月18日
  2007年6月17日
  2008年6月15日
  2009年6月21日
  2010年6月20日
  2011年6月19日

  2012年6月17日

下面是Linux檢視某年某月的日曆的方式。 
[[email protected] ~]# cal 5 2012 
     五月 2012      
日 一 二 三 四 五 六
       1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

下面的指令碼用來計算指定年份的母親節和父親節的日期。

Bash指令碼:calc_date.sh

Bash程式碼  收藏程式碼
  1. #!/bin/sh  
  2. # 母親節(每年5月的第二個星期日 )  
  3. # usage: mother_day [year]  
  4. mother_day()  
  5. {  
  6.         local may1  # 51日  
  7.         if [ "$1" ]; then  
  8.                 may1=$1-05-01   # 也可以是是$1/05/01  
  9.         else  
  10.                 may1=5/1   # 也可以是05/01,但不能是05-01  
  11.         fi  
  12.         #date -d $may1  
  13.         # 看51日是星期幾  
  14.         local w=$(date +%w -d $may1)    # %w 0=星期天 1-6=星期一到六  
  15.         #echo $w  
  16.         if [ $w -eq 0 ]; then   # 如果是51日星期天,就跳過一個星期  
  17.                 date +%F -d "$may1 +1 week"  
  18.         else    # 如果51日不是星期天,就跳過兩個星期,再減去w天  
  19.                 date +%F -d "$may1 +2 week -$w day"  
  20.         fi  
  21. }  
  22. # 父親節(每年6月的第三個星期日)  
  23. # usage: father_day [year]  
  24. father_day()  
  25. {  
  26.         local june1     # 儲存61日的日期  
  27.         if [ "$1" ]; then  
  28.                 june1=$1-06-01  
  29.         else  
  30.                 june1=6/1  
  31.         fi  
  32.         # 因為採用1-7表示星期幾,簡化了計算邏輯  
  33.         local w=$(date +%u -d $june1)   # %u 7=星期天,1-6=星期一到六  
  34.         date +%F -d "$june1 +3 week -$w day"  
  35. }  
  36. # usage: ./calc_date.sh [year]  
  37. if [ "$1" ]; then  
  38.         echo Mother Day of year $1 is $(mother_day "$1")  
  39.         echo Father Day of year $1 is $(father_day "$1")  
  40. else  
  41.         echo Mother Day of this year is $(mother_day)  
  42.         echo Father Day of this year is $(father_day)  
  43. fi  

[[email protected] ~]# ./calc_date.sh 
Mother Day of this year is 2011-05-08
Father Day of this year is 2011-06-19
[[email protected] ~]# ./calc_date.sh 2011 
Mother Day of year 2011 is 2011-05-08
Father Day of year 2011 is 2011-06-19
[[email protected] ~]# ./calc_date.sh 2010 
Mother Day of year 2010 is 2010-05-09
Father Day of year 2010 is 2010-06-20
[[email protected] ~]# ./calc_date.sh 2009 
Mother Day of year 2009 is 2009-05-10
Father Day of year 2009 is 2009-06-21
[[email protected] ~]# ./calc_date.sh 2008 
Mother Day of year 2008 is 2008-05-11
Father Day of year 2008 is 2008-06-15
[[email protected] ~]# ./calc_date.sh 2007 
Mother Day of year 2007 is 2007-05-13
Father Day of year 2007 is 2007-06-17
[[email protected] ~]# ./calc_date.sh 2006 
Mother Day of year 2006 is 2006-05-14
Father Day of year 2006 is 2006-06-18
[[email protected] ~]# ./calc_date.sh 2005 
Mother Day of year 2005 is 2005-05-08
Father Day of year 2005 is 2005-06-19
[[email protected] ~]# ./calc_date.sh 2012 
Mother Day of year 2012 is 2012-05-13
Father Day of year 2012 is 2012-06-17

問題思考

相關資料

【1】Tsung's Blog  Linux 使用 date 計算時間(昨天、明天)
http://blog.longwin.com.tw/2010/07/linux-date-computer-2010/

【2】百度空間  linux date(格式化字串)
http://hi.baidu.com/wuchangqian/blog/item/925281174587c65df3de32b0.html

【3】鳥哥的Linux私房菜  15.3.1 Linux 手動校時工作: date, hwclock
http://linux.vbird.org/linux_server/0440ntp.php#date

【4】xukaizijian  [linux] date和hwclick  
http://xukaizijian.blog.163.com/blog/static/1704331192011028103527980/?suggestedreading

【5】來去 的BLOG (ppp_10001)  Linux--date命令
http://blog.csdn.net/ppp_10001/article/details/5275594

相關推薦

8.linux命令date命令

字符 根據 date cst 設置 1970年1月1日 字符串 linux 命令 date命令: 選項: -d<字符串>:顯示字符串所指的日期與時間。字符串前後必須加上雙引號; -s<

Linux命令——Date命令詳解

date命令的幫助資訊  [[email protected] source]# date --help 用法:date [選項]... [+格式]  或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 以

Linux命令date

用途說明 date命令可以用來顯示和修改系統日期時間,注意不是time命令。 常用引數 格式:date 顯示當前日期時間。 格式:date mmddHHMM           # 簡而言之,就是“月日時分” 格式:date mmddHHMMYYYY 格

Linux基本命令date

cto sha log text 設置 linu date roc process date命令用於顯示及設置系統的時間或日期格式:date [選項] [+指定的格式]例:Linux基本命令之date

mac/linux常用命令date

date:用來顯示或設定系統時間 用法:date [optional] [para] optional -d<字串>:顯示字串所指的日期與時間。字串前後必須加上雙引號; -s<

Linux命令stty

repl 位置 而不是 connector 啟動 previous dsr 根據 pass 用途說明 stty命令用於顯示和修改終端行設置(change and print terminal line settings)。 常用參數 stty命令不帶參數可以打印終端行設置,

Linux命令kill

多種方式 輸入 字符 指定 避免 選項 con 擴展 firefox 精通Linux的kill命令    不管你使用哪種操作系統,你一定會遇到某個行為失常的應用,它把自己鎖死並拒絕關閉。在Linux(還有Mac)。你能夠用一個"kill"命令強制終結它。在這個教程中,我

Linux命令netstat

unknown 網絡相關 mes packet forward 提示 send 狀態 統計 Linux命令之netstat詳解 簡介 Netstat 命令用於顯示各種網絡相關信息,如網絡連接,路由表,接口狀態 (Interface Statistics),masquerad

linux 命令 apt-get

檢查 end 修正 blog font span man 損壞 /var/ apt-get 是一個下載安裝軟件包的簡單命令行接口 使用方法: apt-get [OPTIONS] [COMMANDS] [PACKAGE_NAMES] OPTIONS:

linux 命令 watch

html shell ati watch命令 art track pwd -s 周期 watch能夠幫你監測一個命令的執行結果,省得你一遍遍的手動執行。在Linux下。watch是周期性的執行下個程序。並全屏顯示執行結果。你能夠拿他來監測你想要的一切命令的結果變化,

Linux命令CP詳解

linux命令之cp詳解Linux命令之CP詳解嘿嘿,又一周過去了,大家過的怎麽樣呢,在這一周時間裏,小編可是又學到不少新知識呢。今天呢,小編就和大家分享一下Linux中我們常用的CP的命令,這裏的cp可是copy的簡寫噢。(容我嘚瑟一下) 學過linux的都知道,在我們操作的過程中,我們常常會用到cp這個命

linux命令head、tail命令具體解釋

-c pri fadein rip lin comment pen inux ont head 語法 樣例 tail 語法 樣例 head和tail組合使用方法舉例 head 語法 head [-n -k ].

Linux命令——id

命令 linux id id命令是查看用戶相關屬性信息。顯示真實有效的id(UID)和組ID(GID),UID是對應用戶的單一身份標識,GID則是對應多個UID。常用參數:  -g或--group  顯示用戶所屬群組的ID。  -G或--groups  顯示用戶所屬附加群組的ID。  -n或--n

linux 命令top

設置 smd gnome ont str 優先級 ive set tld top命令是顯示當前系統正在執行的進程相關信息。包含進程ID、內存占用率等;top命令格式例如以下: top [OPTIONS] OPTIONS: -b 批處理 -c

移位運算、Arrays中的copyOf、java.util.AbstractCollection、linux命令tail

xca eid width gte 技術分享 blank strac eba tail 移位運算:http://www.cnblogs.com/hongten/p/hongten_java_yiweiyunsuangfu.html。 ---------- Arrays中的c

Linux命令uptime

and sin bsp 登錄 logs 0.00 mage 查看 工具包 這是什麽 uptime用來查看系統已經啟動了多長時間了。 它顯示的信息和w命令的頭(第一行)是一樣一樣的。 舉個栗子 舉一個實際的應用場景: 比如發現服務器上的某些沒有加入開機啟動的服務掛了一

Linux命令命令查找方式

命令查找順序1 命令類型 linux中命令類型分為兩類,一類為shell中自帶的命令,即內部命令,而其它的在文件系統之上的命令程序,即外部命令. 內部命令的優點: 命令程序在內存中,使用更快捷 相關命令: type,enable type -

測試過程中常用的linux命令【查看文件指定行的內容】

sed head tail 在開展測試工作的過程中,通常要接觸到服務器,對於linux服務器,總結一些常用的命令。 準備工作為了能直觀展示命令結果,使用腳本創建一個文件,在顯示文件內容的同時,也直觀的顯示行號。#!/bin/bash FileName=TestFile.log touch ./$

測試過程中常用的linux命令【查找指定的文件內容】

vi grep 之前遇到過這種情況,在查看日誌定位問題時,會將log 傳輸到本地,然後用本地的文本編輯工具打開文件,然後查找關鍵字,再進行分析。 這樣做無疑會降低效率。整理了幾個常用的命令,可以進行快速的查找。測試文件:文件名稱為execution.log, 文件內容如下:[error] Timed o

Linux命令bc

命令 logs oca cal clas 交互 浮點 linux blog bc命令是一種支持任意精度的交互執行的計算器語言。 bash內置了對整數四則運算的支持,但是並不支持浮點運算,而bc命令可以很方便的進行浮點運算,當然整數運算也不再話下。 如果沒有可以下載