date === æ¾ç¤ºæè®¾ç½®ç³»ç»æ¶é´ä¸æ¥æ ## æ¦è¦ ```shell date [OPTION]... [+FORMAT] date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] ``` ## 主è¦ç¨é - è½¬æ¢æ¶é´å°éå®çæ ¼å¼ï¼é»è®¤ä¸ºå½åã - è®¾ç½®ç³»ç»æ¶é´ã ## åæ° formatï¼è¾åºçæ¶é´æ ¼å¼ã ```shell formatå¯ç¨ç转ä¹åºåå¦ä¸ï¼ %% ç¾åå· %a å½å°ç¼©åç工使¥åç§°ï¼ä¾å¦ï¼Sunï¼ %A å½å°å®æ´ç工使¥åç§°ï¼ä¾å¦ï¼Sundayï¼ %b å½å°ç¼©åçæä»½åç§°ï¼ä¾å¦ï¼Janï¼ %B å½å°å®æ´çæä»½åç§°ï¼ä¾å¦ï¼Januaryï¼ %c å½å°çæ¥æåæ¶é´ï¼ä¾å¦ï¼Thu Mar 3 23:05:25 2005ï¼ %C ä¸çºªï¼å%Y类似ï¼ä½æ¯çç¥å两ä½ï¼ä¾å¦ï¼20ï¼ %d 䏿ä¸çä¸å¤©ï¼ä¾å¦ï¼01ï¼ %D æ¥æï¼çä»·äº%m/%d/%y %e 䏿ä¸çä¸å¤©ï¼æ ¼å¼ä½¿ç¨ç©ºæ ¼å¡«å ï¼çä»·äº%_d %F 宿´çæ¥æï¼çä»·äº%+4Y-%m-%d %g ISOæ å计æ°å¨ç年份çæå䏤使°å %G ISOæ å计æ°å¨ç年份ï¼é常åªå¯¹%Væç¨ %h çä»·äº%b %H å°æ¶ï¼èå´ï¼00..23ï¼ %I å°æ¶ï¼èå´ï¼00..23ï¼ %j ä¸å¹´ä¸çä¸å¤©ï¼èå´ï¼001..366ï¼ %k å°æ¶ï¼ä½¿ç¨ç©ºæ ¼å¡«å ï¼èå´ï¼0..23ï¼ï¼çä»·äº%_H %l å°æ¶ï¼ä½¿ç¨ç©ºæ ¼å¡«å ï¼èå´ï¼1..12ï¼ï¼çä»·äº%_I %m æï¼èå´ï¼01..12ï¼ %M åéï¼èå´ï¼00..59ï¼ %n æ¢è¡ç¬¦ %N 纳ç§ï¼èå´ï¼000000000..000000000ï¼ %p ç¨äºè¡¨ç¤ºå½å°çAMæPMï¼å¦ææªç¥åä¸ºç©ºç½ %P 类似äº%pï¼ä½ç¨å°å表示 %q å£åº¦ï¼èå´ï¼1..4ï¼ %r å½å°ä»¥12å°æ¶è¡¨ç¤ºçæ¶éæ¶é´ï¼ä¾å¦ï¼11:11:04 PMï¼ %R 24å°æ¶æ¯åéï¼çä»·äº%H:%M %s èªåè°ä¸çæ¶1970å¹´01æ01æ¥00æ¶00å以æ¥çç§æ° %S ç§æ°ï¼èå´ï¼00..60ï¼ %t æ°´å¹³å¶è¡¨ç¬¦ %T æ¶é´ï¼çä»·äº%H:%M:%S %u ä¸å¨ä¸çä¸å¤©ï¼1..7ï¼ï¼1代表ææä¸ %U ä¸å¹´ä¸ç第å å¨ï¼å¨æ¥ä½ä¸ºä¸å¨çèµ·å§ï¼00..53ï¼ %V ISOæ å计æ°å¨ï¼è¯¥æ¹æ³å°å¨ä¸ä½ä¸ºä¸å¨çèµ·å§ï¼01..53ï¼ %w ä¸å¨ä¸çä¸å¤©ï¼0..6ï¼ï¼0代表ææå¤© %W ä¸å¹´ä¸ç第å å¨ï¼å¨ä¸ä½ä¸ºä¸å¨çèµ·å§ï¼00..53ï¼ %x å½å°çæ¥æè¡¨ç¤ºï¼ä¾å¦ï¼12/31/99ï¼ %X å½å°çæ¶é´è¡¨ç¤ºï¼ä¾å¦ï¼23:13:48ï¼ %y 年份å䏤使°åï¼èå´ï¼00..99ï¼ %Y 年份 %z +hhmmæ ¼å¼çæ°å¼åæ¶åºæ ¼å¼ï¼ä¾å¦ï¼-0400ï¼ %:z +hh:mmæ ¼å¼çæ°å¼åæ¶åºæ ¼å¼ï¼ä¾å¦ï¼-04:00ï¼ %::z +hh:mm:ssæ ¼å¼çæ°å¼åæ¶åºæ ¼å¼ï¼ä¾å¦ï¼-04:00:00ï¼ %:::z æ°å¼åæ¶åºæ ¼å¼ï¼ç¸æ¯ä¸ä¸ä¸ªæ ¼å¼å¢å ':'以æ¾ç¤ºå¿ è¦ç精度ï¼ä¾å¦ï¼-04ï¼+05:30ï¼ %Z æ¶åºç¼©åï¼å¦EDTï¼ é»è®¤æ åµä¸ï¼æ¥æç¨é¶å¡«å æ°ååæ®µï¼ä»¥ä¸å¯éç符å·å¯ä»¥è·å¨'%'åé¢: - (è¿å符) ä¸è¦å¡«å ç¸åºçåæ®µã _ (ä¸å线) 使ç¨ç©ºæ ¼å¡«å ç¸åºçåæ®µã 0 (æ°å0) ä½¿ç¨æ°å0å¡«å ç¸åºçåæ®µã + ç¨æ°å0å¡«å ï¼æªæ¥å¹´ä»½å¤§äº4使°ååå¨åé¢å ä¸'+'å·ã ^ å è®¸çæ åµä¸ä½¿ç¨å¤§åã # å è®¸çæ åµä¸å°é»è®¤ç大å转æ¢ä¸ºå°åï¼é»è®¤çå°å转æ¢ä¸ºå¤§åã å¨ä»»ä½æ å¿ä¹å齿ä¸ä¸ªå¯éçåæ®µå®½åº¦ï¼å¦å°æ°ï¼ç¶åæ¯ä¸ä¸ªå¯éç修饰符ï¼å¨å¯ç¨çæ åµä¸ï¼ä½¿ç¨Eæ¥ä½¿ç¨å½å°è¯è¨ç¯å¢çæ¿ä»£è¡¨ç¤ºï¼ 使ç¨Oæ¥ä½¿ç¨å½å°è¯è¨ç¯å¢çæ¿ä»£æ°å符å·ã ``` ## é项 ```shell é¿é项ä¸çé项çä»· -d, --date=STRING è§£æå符串并æç §æå®æ ¼å¼è¾åºï¼å符串ä¸è½æ¯'now'ã --debug 注é已解æçæ¥æï¼å¹¶å°æçé®çç¨æ³åéå°æ åé误ã -f, --file=DATEFILE 类似äº--date; 䏿¬¡ä»DATEFILEå¤çä¸è¡ã -I[FMT], --iso-8601[=FMT] æç §ISO 8601æ ¼å¼è¾åºï¼FMTå¯ä»¥ä¸º'date'(é»è®¤)ï¼'hours'ï¼'minutes'ï¼'seconds'ï¼'ns'ã ä¾å¦ï¼2006-08-14T02:34:56-06:00 -R, --rfc-email æç §RFC 5322æ ¼å¼è¾åºï¼ä¾å¦: Mon, 14 Aug 2006 02:34:56 -0600 --rfc-3339=FMT æç §RFC 3339æ ¼å¼è¾åºï¼FMTå¯ä»¥ä¸º'date', 'seconds','ns'ä¸çä¸ä¸ªï¼ ä¾å¦ï¼2006-08-14 02:34:56-06:00 -r, --reference=FILE æ¾ç¤ºæä»¶ç䏿¬¡ä¿®æ¹æ¶é´ã -s, --set=STRING æ ¹æ®åç¬¦ä¸²è®¾ç½®ç³»ç»æ¶é´ã -u, --utc, --universal æ¾ç¤ºæè®¾ç½®ä¸çåè°æ¶(UTC)ã --help æ¾ç¤ºå¸®å©ä¿¡æ¯å¹¶éåºã --version æ¾ç¤ºçæ¬ä¿¡æ¯å¹¶éåºã ``` ## è¿åå¼ è¿åç¶æä¸ºæåé¤éç»åºäºéæ³é项æéæ³åæ°ã ## ä¾å ```shell # æ ¼å¼åè¾åºï¼ date +"%Y-%m-%d" 2009-12-07 # è¾åºæ¨å¤©æ¥æï¼ date -d "1 day ago" +"%Y-%m-%d" 2012-11-19 # 2ç§åè¾åºï¼ date -d "2 second" +"%Y-%m-%d %H:%M.%S" 2012-11-20 14:21.31 # ä¼ è¯´ä¸ç 1234567890 ç§ï¼ date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%M:%S" # æè date -d@1234567890 +"%F %T" # è¾åºç»æ 2009-02-13 23:02:30 # æ¶é´æ ¼å¼è½¬æ¢ï¼ date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S" # è¾åºç»æ 2009/12/12 00:00.00 # apacheæ ¼å¼è½¬æ¢ï¼ date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S" # è¾åºç»æ 2009-12-05 00:00.37 # æ ¼å¼è½¬æ¢åæ¶é´æ¸¸èµ°ï¼ date -d "Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S" # è¾åºç»æ 2007-12-05 00:00.37 # æ¶é´å åæä½ï¼ date +%Y%m%d # æ¾ç¤ºå¹´ææ¥ date -d "+1 day" +%Y%m%d # æ¾ç¤ºåä¸å¤©çæ¥æ date -d "-1 day" +%Y%m%d # æ¾ç¤ºåä¸å¤©çæ¥æ date -d "-1 month" +%Y%m%d # æ¾ç¤ºä¸ä¸æçæ¥æ date -d "+1 month" +%Y%m%d # æ¾ç¤ºä¸ä¸æçæ¥æ date -d "-1 year" +%Y%m%d # æ¾ç¤ºåä¸å¹´çæ¥æ date -d "+1 year" +%Y%m%d # æ¾ç¤ºä¸ä¸å¹´çæ¥æ # è®¾å®æ¶é´ï¼ date -s # 设置å½åæ¶é´ï¼åªærootæéæè½è®¾ç½®ï¼å ¶ä»åªè½æ¥ç date -s 20120523 # 设置æ20120523ï¼è¿æ ·ä¼æå ·ä½æ¶é´è®¾ç½®æ00:00:00 date -s 01:01:01 # è®¾ç½®å ·ä½æ¶é´ï¼ä¸ä¼å¯¹æ¥æåæ´æ¹ date -s "01:01:01 2012-05-23" # è¿æ ·å¯ä»¥è®¾ç½®å ¨é¨æ¶é´ date -s "01:01:01 20120523" # è¿æ ·å¯ä»¥è®¾ç½®å ¨é¨æ¶é´ date -s "2012-05-23 01:01:01" # è¿æ ·å¯ä»¥è®¾ç½®å ¨é¨æ¶é´ date -s "20120523 01:01:01" # è¿æ ·å¯ä»¥è®¾ç½®å ¨é¨æ¶é´ # ææ¶éè¦æ£æ¥ä¸ç»å½ä»¤è±è´¹çæ¶é´ï¼ start=$(date +%s) nmap wangchujiang.com &> /dev/null end=$(date +%s) difference=$(( end - start )) # æ¾ç¤ºæ§è¡æ¶é´ echo $difference seconds. # å½ä½ èèè¾åºå¸¦ææ¶é´çå符串æ¶ï¼ä¾å¦ï¼Current time: 2019/05/19ï¼ï¼ # é常使ç¨çæ¹æ³ï¼ echo "Current time: $(date +"%Y/%m/%d")" # å¦ä¸ç§æ¹æ³ï¼ suffix='Current time:' # 注æå¦ææ¢æåå¼å·å°±ä¸è½æ¿æ¢åéäºã date +"${suffix} %Y/%m/%d" ``` ### 注æ 1. 该å½ä»¤æ¯`GNU coreutils`å ä¸çå½ä»¤ï¼ç¸å ³ç帮å©ä¿¡æ¯è¯·æ¥ç`man -s 1 date`æ`info coreutils 'date invocation'`ã