date 根據給定格式顯示日期或設置系統日期時間。print or set the system date and timehtml
指令所在路徑:/bin/dategit
date [OPTION]... [+FORMAT]redis
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]bash
參數less |
描述ide |
-dui |
顯示字符串描述的時間this |
-fspa |
顯示DATEFILE文件中的每行時間3d |
-r |
顯示文件的最後修改時間 |
-R |
以RFC-2822兼容日期格式顯示時間 |
-rfc-2822 |
以RFC-2822兼容日期格式顯示時間 |
-s |
設置時間爲string |
-u |
顯示或設定爲Coordinated Universal Time時間格式 |
--help |
顯示date命令的幫助信息 |
--version |
顯示date命令的版本信息 |
要說寫這位程序的 David MacKenzie老兄,真是事無鉅細啊,竟然整了這麼多格式參數,佩服佩服。
參數 |
描述 |
%% |
顯示字符% |
%a |
星期幾的縮寫(Sun..Sat) |
%A |
星期幾的完整名稱(Sunday...Saturday) |
%b |
月份的縮寫(Jan..Dec) |
%B |
月份的完整名稱(January..December) |
%c |
日期與時間。只輸入date指令也會顯示一樣的結果 |
%C |
世紀(年份除100後去整) [00-99] |
%d |
日期(以01-31來表示)。 |
%D |
日期(含年月日)。 |
%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開始的秒數 |
%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 風格數字格式時區(-0500) |
%Z |
時區(e.g., EDT), 沒法肯定時區則爲空 |
1: 查看date命令幫助信息
1 [root@Gin scripts]# date --help 2 Usage: date [OPTION]... [+FORMAT] 3 or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 4 Display the current time in the given FORMAT, or set the system date. 5 6 -d, --date=STRING display time described by STRING, not `now' 7 -f, --file=DATEFILE like --date once for each line of DATEFILE 8 -r, --reference=FILE display the last modification time of FILE 9 -R, --rfc-2822 output date and time in RFC 2822 format. 10 Example: Mon, 07 Aug 2006 12:34:56 -0600 11 --rfc-3339=TIMESPEC output date and time in RFC 3339 format. 12 TIMESPEC=`date', `seconds', or `ns' for 13 date and time to the indicated precision. 14 Date and time components are separated by 15 a single space: 2006-08-07 12:34:56-06:00 16 -s, --set=STRING set time described by STRING 17 -u, --utc, --universal print or set Coordinated Universal Time 18 --help display this help and exit 19 --version output version information and exit 20 21 FORMAT controls the output. Interpreted sequences are: 22 23 %% a literal % 24 %a locale's abbreviated weekday name (e.g., Sun) 25 %A locale's full weekday name (e.g., Sunday) 26 %b locale's abbreviated month name (e.g., Jan) 27 %B locale's full month name (e.g., January) 28 %c locale's date and time (e.g., Thu Mar 3 23:05:25 2005) 29 %C century; like %Y, except omit last two digits (e.g., 20) 30 %d day of month (e.g, 01) 31 %D date; same as %m/%d/%y 32 %e day of month, space padded; same as %_d 33 %F full date; same as %Y-%m-%d 34 %g last two digits of year of ISO week number (see %G) 35 %G year of ISO week number (see %V); normally useful only with %V 36 %h same as %b 37 %H hour (00..23) 38 %I hour (01..12) 39 %j day of year (001..366) 40 %k hour ( 0..23) 41 %l hour ( 1..12) 42 %m month (01..12) 43 %M minute (00..59) 44 %n a newline 45 %N nanoseconds (000000000..999999999) 46 %p locale's equivalent of either AM or PM; blank if not known 47 %P like %p, but lower case 48 %r locale's 12-hour clock time (e.g., 11:11:04 PM) 49 %R 24-hour hour and minute; same as %H:%M 50 %s seconds since 1970-01-01 00:00:00 UTC 51 %S second (00..60) 52 %t a tab 53 %T time; same as %H:%M:%S 54 %u day of week (1..7); 1 is Monday 55 %U week number of year, with Sunday as first day of week (00..53) 56 %V ISO week number, with Monday as first day of week (01..53) 57 %w day of week (0..6); 0 is Sunday 58 %W week number of year, with Monday as first day of week (00..53) 59 %x locale's date representation (e.g., 12/31/99) 60 %X locale's time representation (e.g., 23:13:48) 61 %y last two digits of year (00..99) 62 %Y year 63 %z +hhmm numeric timezone (e.g., -0400) 64 %:z +hh:mm numeric timezone (e.g., -04:00) 65 %::z +hh:mm:ss numeric time zone (e.g., -04:00:00) 66 %:::z numeric time zone with : to necessary precision (e.g., -04, +05:30) 67 %Z alphabetic time zone abbreviation (e.g., EDT) 68 69 By default, date pads numeric fields with zeroes. 70 The following optional flags may follow `%': 71 72 - (hyphen) do not pad the field 73 _ (underscore) pad with spaces 74 0 (zero) pad with zeros 75 ^ use upper case if possible 76 # use opposite case if possible 77 78 After any flags comes an optional field width, as a decimal number; 79 then an optional modifier, which is either 80 E to use the locale's alternate representations if available, or 81 O to use the locale's alternate numeric symbols if available. 82 83 Report date bugs to bug-coreutils@gnu.org 84 GNU coreutils home page: <http://www.gnu.org/software/coreutils/> 85 General help using GNU software: <http://www.gnu.org/gethelp/> 86 For complete documentation, run: info coreutils 'date invocation'
1 [root@Gin scripts]# man date 2 DATE(1) User Commands DATE(1) 3 4 NAME 5 date - print or set the system date and time 6 7 SYNOPSIS 8 date [OPTION]... [+FORMAT] 9 date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 10 11 DESCRIPTION 12 Display the current time in the given FORMAT, or set the system 13 : 14 DATE(1) User Commands DATE(1) 15 16 NAME 17 date - print or set the system date and time 18 19 SYNOPSIS 20 date [OPTION]... [+FORMAT] 21 date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 22 23 DESCRIPTION 24 Display the current time in the given FORMAT, or set the system 25 date. 26 27 -d, --date=STRING 28 display time described by STRING, not ‘now’ 29 30 -f, --file=DATEFILE 31 like --date once for each line of DATEFILE 32 33 -r, --reference=FILE 34 display the last modification time of FILE 35 36 -R, --rfc-2822 37 output date and time in RFC 2822 format. Example: Mon, 38 07 Aug 2006 12:34:56 -0600 39 40 --rfc-3339=TIMESPEC 41 output date and time in RFC 3339 format. TIME- 42 SPEC=‘date’, ‘seconds’, or ‘ns’ for date and time to the 43 indicated precision. Date and time components are sepa- 44 rated by a single space: 2006-08-07 12:34:56-06:00 45 46 -s, --set=STRING 47 set time described by STRING 48 49 -u, --utc, --universal 50 print or set Coordinated Universal Time 51 52 --help display this help and exit 53 54 --version 55 output version information and exit 56 57 FORMAT controls the output. Interpreted sequences are: 58 59 %% a literal % 60 61 %a locale’s abbreviated weekday name (e.g., Sun) 62 63 %A locale’s full weekday name (e.g., Sunday) 64 65 %b locale’s abbreviated month name (e.g., Jan) 66 67 %B locale’s full month name (e.g., January) 68 69 %c locale’s date and time (e.g., Thu Mar 3 23:05:25 2005) 70 71 %C century; like %Y, except omit last two digits (e.g., 20) 72 73 %d day of month (e.g, 01) 74 75 %D date; same as %m/%d/%y 76 77 %e day of month, space padded; same as %_d 78 79 %F full date; same as %Y-%m-%d 80 81 %g last two digits of year of ISO week number (see %G) 82 83 %G year of ISO week number (see %V); normally useful only 84 with %V 85 86 %h same as %b 87 88 %H hour (00..23) 89 90 %I hour (01..12) 91 92 %j day of year (001..366) 93 94 %k hour ( 0..23) 95 96 %l hour ( 1..12) 97 98 %m month (01..12) 99 100 %M minute (00..59) 101 102 %n a newline 103 104 %N nanoseconds (000000000..999999999) 105 106 %p locale’s equivalent of either AM or PM; blank if not 107 known 108 109 %P like %p, but lower case 110 111 %r locale’s 12-hour clock time (e.g., 11:11:04 PM) 112 113 %R 24-hour hour and minute; same as %H:%M 114 115 %s seconds since 1970-01-01 00:00:00 UTC 116 117 %S second (00..60) 118 119 %t a tab 120 121 %T time; same as %H:%M:%S 122 123 %u day of week (1..7); 1 is Monday 124 125 %U week number of year, with Sunday as first day of week 126 (00..53) 127 128 %V ISO week number, with Monday as first day of week 129 (01..53) 130 131 %w day of week (0..6); 0 is Sunday 132 133 %W week number of year, with Monday as first day of week 134 (00..53) 135 136 %x locale’s date representation (e.g., 12/31/99) 137 138 %X locale’s time representation (e.g., 23:13:48) 139 140 %y last two digits of year (00..99) 141 142 %Y year 143 144 %z +hhmm numeric timezone (e.g., -0400) 145 146 %:z +hh:mm numeric timezone (e.g., -04:00) 147 148 %::z +hh:mm:ss numeric time zone (e.g., -04:00:00) 149 150 %:::z numeric time zone with : to necessary precision (e.g., 151 -04, +05:30) 152 153 %Z alphabetic time zone abbreviation (e.g., EDT) 154 155 By default, date pads numeric fields with zeroes. The following 156 optional flags may follow ‘%’: 157 158 - (hyphen) do not pad the field 159 160 _ (underscore) pad with spaces 161 162 0 (zero) pad with zeros 163 164 ^ use upper case if possible 165 166 # use opposite case if possible 167 168 After any flags comes an optional field width, as a decimal num- 169 ber; then an optional modifier, which is either E to use the 170 locale’s alternate representations if available, or O to use the 171 locale’s alternate numeric symbols if available. 172 173 DATE STRING 174 The --date=STRING is a mostly free format human readable date 175 string such as "Sun, 29 Feb 2004 16:21:42 -0800" or "2004-02-29 176 16:21:42" or even "next Thursday". A date string may contain 177 items indicating calendar date, time of day, time zone, day of 178 week, relative time, relative date, and numbers. An empty 179 string indicates the beginning of the day. The date string for- 180 mat is more complex than is easily documented here but is fully 181 described in the info documentation. 182 183 ENVIRONMENT 184 TZ Specifies the timezone, unless overridden by command line 185 parameters. If neither is specified, the setting from 186 /etc/localtime is used. 187 188 AUTHOR 189 Written by David MacKenzie. 190 191 REPORTING BUGS 192 Report date bugs to bug-coreutils@gnu.org 193 GNU coreutils home page: <http://www.gnu.org/software/core- 194 utils/> 195 General help using GNU software: <http://www.gnu.org/gethelp/> 196 Report date translation bugs to <http://translationpro- 197 ject.org/team/> 198 199 COPYRIGHT 200 Copyright © 2010 Free Software Foundation, Inc. License GPLv3+: 201 GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. 202 This is free software: you are free to change and redistribute 203 it. There is NO WARRANTY, to the extent permitted by law. 204 205 SEE ALSO 206 The full documentation for date is maintained as a Texinfo man- 207 ual. If the info and date programs are properly installed at 208 your site, the command 209 210 info coreutils 'date invocation' 211 212 should give you access to the complete manual. 213 214 GNU coreutils 8.4 October 2014 DATE(1) 215 (END)
2:運用-d參數
[root@Gin scripts]# date Sun Jan 29 10:46:03 CST 2017 [root@Gin scripts]# date -d now Sun Jan 29 10:46:07 CST 2017 [root@Gin scripts]# date -d 'next monday' Mon Jan 30 00:00:00 CST 2017 [root@Gin scripts]# date -d yesterday +%Y%m%d 20170128
3:顯示文件中的時間
[root@Gin scripts]# cat >date.txt 2013-11-17 10:54:00 2013-11-22 11:11:11 [root@Gin scripts]# more date.txt 2013-11-17 10:54:00 2013-11-22 11:11:11 [root@Gin scripts]# date -f date.txt Sun Nov 17 10:54:00 CST 2013 Fri Nov 22 11:11:11 CST 2013
4:顯示文件最後修改的時間
[root@Gin scripts]# date -r date.txt Sun Jan 29 10:49:11 CST 2017
5:按各類格式顯示當前日期時間
這個命令的格式參數實在是太多了,在此沒有必要每個參數都嘗試一遍,你們能夠對照Format參數表,本身敲一敲命令實踐一下。
[root@Gin scripts]# date +%Y 2017 [root@Gin scripts]# date +%m 01 [root@Gin scripts]# date +%D 01/29/17 [root@Gin scripts]# date '+%Y-%m-%d' 2017-01-29 [root@Gin scripts]# date +%Y-%m-%d 2017-01-29 [root@Gin scripts]# date +%m/%d/%y 01/29/17
6: 設置系統時間
[root@Gin scripts]# date -s "2016-11-11 00:00:00" Fri Nov 11 00:00:00 CST 2016 [root@Gin scripts]# date Fri Nov 11 00:00:05 CST 2016
7:請給出以下格式的date命令,如:11-02-26。再給出實現按周輸出,如:週六爲6,請分別給出命令
[root@Gin scripts]# date +%y-%m-%d 17-01-29 [root@Gin scripts]# date +%F 2017-01-29 [root@Gin scripts]# date "+%Y-%m-%d %H:%M:%S" 2017-01-29 10:57:02
生產場景中經常使用時間格式來打包數據:
[root@Andy andy]# tar zcvf etc-$(date +%F).tar.gz /etc [root@Andy andy]# tar zcvf etc-`date +%F`.tar.gz /etc
解析命令方法:反引號,或$(),如上
[root@Andy andy]# date +%w ##顯示周,0-6 3 顯示過去與將來時間: [root@Andy andy]# date +%F 2016-11-16 [root@Andy andy]# date +%F -d "-1day" 2016-11-15 [root@Andy andy]# date +%F -d "+2day" 2016-11-18 [root@Andy andy]# date +%F -d "+24hour" 2016-11-17 [root@Andy andy]# date +%F-%H -d "+2hour" 2016-11-16-14