date === æ¾ç¤ºæè®¾ç½®ç³»ç»æ¶é´ä¸æ¥æ ## è¡¥å 说æ **dateå½ä»¤** æ¯æ¾ç¤ºæè®¾ç½®ç³»ç»æ¶é´ä¸æ¥æã å¾å¤shellèæ¬éé¢éè¦æå°ä¸åæ ¼å¼çæ¶é´ææ¥æï¼ä»¥åè¦æ ¹æ®æ¶é´åæ¥ææ§è¡æä½ãå»¶æ¶é常ç¨äºèæ¬æ§è¡è¿ç¨ä¸æä¾ä¸æ®µçå¾ çæ¶é´ãæ¥æå¯ä»¥ä»¥å¤ç§æ ¼å¼å»æå°ï¼ä¹å¯ä»¥ä½¿ç¨å½ä»¤è®¾ç½®åºå®çæ ¼å¼ãå¨ç±»UNIXç³»ç»ä¸ï¼æ¥æè¢«åå¨ä¸ºä¸ä¸ªæ´æ°ï¼å ¶å¤§å°ä¸ºèªä¸çæ åæ¶é´ï¼UTCï¼1970å¹´1æ1æ¥0æ¶0å0ç§èµ·æµéçç§æ°ã ### è¯æ³ ```shell date(é项)(åæ°) ``` ### é项 ```shell -d<å符串>ï¼æ¾ç¤ºå符串ææçæ¥æä¸æ¶é´ãå符串ååå¿ é¡»å ä¸åå¼å·ï¼ -s<å符串>ï¼æ ¹æ®å符串æ¥è®¾ç½®æ¥æä¸æ¶é´ãå符串ååå¿ é¡»å ä¸åå¼å·ï¼ -uï¼æ¾ç¤ºGMTï¼ --helpï¼å¨çº¿å¸®å©ï¼ --versionï¼æ¾ç¤ºçæ¬ä¿¡æ¯ã ``` ### åæ° <+æ¶é´æ¥ææ ¼å¼>ï¼æå®æ¾ç¤ºæ¶ä½¿ç¨çæ¥ææ¶é´æ ¼å¼ã ### æ¥ææ ¼å¼å符串å表 ```shell %H # å°æ¶ï¼24å°æ¶å¶ï¼00~23ï¼ %I # å°æ¶ï¼12å°æ¶å¶ï¼01~12ï¼ %k # å°æ¶ï¼24å°æ¶å¶ï¼0~23ï¼ %l # å°æ¶ï¼12å°æ¶å¶ï¼1~12ï¼ %M # åï¼00ï½59ï¼ %p # æ¾ç¤ºåºä¸åæä¸å %r # æ¶é´ï¼12å°æ¶å¶ %s # ä»1970å¹´1æ1æ¥0ç¹å°ç®åç»åçç§æ° %S # ç§ï¼00ï½59ï¼ %T # æ¶é´ï¼24å°æ¶å¶ï¼ï¼hh:mm:ssï¼ %X # æ¾ç¤ºæ¶é´çæ ¼å¼ï¼ï¼ Hæ¶ï¼ Måï¼ Sç§ï¼ %Z # æåæ¯è¡¨æåºçæ¶åºç¼©å %a # ææå缩å %A # ææåå ¨ç§° %b # æå缩å %B # æåå ¨ç§° %c # æ¥æåæ¶é´ %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 # 年份çæå两个æ°åï¼1999忝99ï¼ %Y # å¹´ä»½ï¼æ¯å¦1970ã1996çï¼ %C # ä¸çºªï¼é常为çç¥å½å年份çå䏤使°å %U # ä¸å¹´ä¸ç第å å¨ï¼ä»¥å¨æ¥ä¸ºæ¯ææç¬¬ä¸å¤© %e # ææè®¡çæ¥æï¼æ·»å ç©ºæ ¼ï¼çäº%_d ``` ### å®ä¾ æ ¼å¼åè¾åºï¼ ```shell date +"%Y-%m-%d" 2009-12-07 ``` è¾åºæ¨å¤©æ¥æï¼ ```shell date -d "1 day ago" +"%Y-%m-%d" 2012-11-19 ``` 2ç§åè¾åºï¼ ```shell date -d "2 second" +"%Y-%m-%d %H:%M.%S" 2012-11-20 14:21.31 ``` ä¼ è¯´ä¸ç 1234567890 ç§ï¼ ```shell date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S" 2009-02-13 23:02:30 ``` æ®éè½¬æ ¼å¼ï¼ ```shell date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S" 2009/12/12 00:00.00 ``` apacheæ ¼å¼è½¬æ¢ï¼ ```shell date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S" 2009-12-05 00:00.37 ``` æ ¼å¼è½¬æ¢åæ¶é´æ¸¸èµ°ï¼ ```shell date -d "Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S" 2007-12-05 00:00.37 ``` å åæä½ï¼ ```shell 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 # æ¾ç¤ºä¸ä¸å¹´çæ¥æ ``` è®¾å®æ¶é´ï¼ ```shell 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" # è¿æ ·å¯ä»¥è®¾ç½®å ¨é¨æ¶é´ ``` ææ¶éè¦æ£æ¥ä¸ç»å½ä»¤è±è´¹çæ¶é´ï¼ä¸¾ä¾ï¼ ```shell #!/bin/bash start=$(date +%s) nmap wangchujiang.com &> /dev/null end=$(date +%s) difference=$(( end - start )) echo $difference seconds. ``` å½ä½ èèè¾åºå¸¦ææ¶é´çå符串æ¶ï¼ä¾å¦ï¼Current time: 2019/05/19ï¼ï¼ æå¸¸ç¨çæ¹æ³ï¼ ```shell echo "Current time: $(date +"%Y/%m/%d")" ``` å¦ä¸ç§æ¹æ³ï¼ ```shell suffix='Current time:' #åechoçç¨æ³å·®ä¸å¤ï¼æ³¨æå¦ææ¢æåå¼å·å°±ä¸è½æ¿æ¢åéäºã date +"${suffix} %Y/%m/%d" ```