本文转自:http://www.cnblogs.com/kerrycode/p/3427617.html
命令简介:
date 根据给定格式显示日期或设置系统日期时间。print or set the system date and time
指令所在路径:/bin/date
命令语法:
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
命令参数:
参数 | 描述 |
-d | 显示字符串描述的时间 |
-f | 显示DATEFILE文件中的每行时间 |
-r | 显示文件的最后修改时间 |
-R | 以RFC-2822兼容日期格式显示时间 |
-rfc-2822 | 以RFC-2822兼容日期格式显示时间 |
-s | 设置时间为string |
-u | 显示或设定为Coordinated Universal Time时间格式 |
--help | 显示date命令的帮助信息 |
--version | 显示date命令的版本信息 |
Format参数格式
要说写这位程序的 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@DB-Server ~]# date --help
2:
3: Usage: date [OPTION]... [+FORMAT]
4:
5: or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
6:
7: Display the current time in the given FORMAT, or set the system date.
8:
9: -d, --date=STRING display time described by STRING, not `now'
10:
11: -f, --file=DATEFILE like --date once for each line of DATEFILE
12:
13: -r, --reference=FILE display the last modification time of FILE
14:
15: -R, --rfc-2822 output date and time in RFC 2822 format
16:
17: --rfc-3339=TIMESPEC output date and time in RFC 3339 format.
18:
19: TIMESPEC=`date', `seconds', or `ns' for
20:
21: date and time to the indicated precision.
22:
23: -s, --set=STRING set time described by STRING
24:
25: -u, --utc, --universal print or set Coordinated Universal Time
26:
27: --help display this help and exit
28:
29: --version output version information and exit
30:
31: FORMAT controls the output. The only valid option for the second form
32:
33: specifies Coordinated Universal Time. Interpreted sequences are:
34:
35: %% a literal %
36:
37: %a locale's abbreviated weekday name (e.g., Sun)
38:
39: %A locale's full weekday name (e.g., Sunday)
40:
41: %b locale's abbreviated month name (e.g., Jan)
42:
43: %B locale's full month name (e.g., January)
44:
45: %c locale's date and time (e.g., Thu Mar 3 23:05:25 2005)
46:
47: %C century; like %Y, except omit last two digits (e.g., 21)
48:
49: %d day of month (e.g, 01)
50:
51: %D date; same as %m/%d/%y
52:
53: %e day of month, space padded; same as %_d
54:
55: %F full date; same as %Y-%m-%d
56:
57: %g last two digits of year of ISO week number (see %G)
58:
59: %G year of ISO week number (see %V); normally useful only with %V
60:
61: %h same as %b
62:
63: %H hour (00..23)
64:
65: %I hour (01..12)
66:
67: %j day of year (001..366)
68:
69: %k hour ( 0..23)
70:
71: %l hour ( 1..12)
72:
73: %m month (01..12)
74:
75: %M minute (00..59)
76:
77: %n a newline
78:
79: %N nanoseconds (000000000..999999999)
80:
81: %p locale's equivalent of either AM or PM; blank if not known
82:
83: %P like %p, but lower case
84:
85: %r locale's 12-hour clock time (e.g., 11:11:04 PM)
86:
87: %R 24-hour hour and minute; same as %H:%M
88:
89: %s seconds since 1970-01-01 00:00:00 UTC
90:
91: %S second (00..60)
92:
93: %t a tab
94:
95: %T time; same as %H:%M:%S
96:
97: %u day of week (1..7); 1 is Monday
98:
99: %U week number of year, with Sunday as first day of week (00..53)
100:
101: %V ISO week number, with Monday as first day of week (01..53)
102:
103: %w day of week (0..6); 0 is Sunday
104:
105: %W week number of year, with Monday as first day of week (00..53)
106:
107: %x locale's date representation (e.g., 12/31/99)
108:
109: %X locale's time representation (e.g., 23:13:48)
110:
111: %y last two digits of year (00..99)
112:
113: %Y year
114:
115: %z +hhmm numeric timezone (e.g., -0400)
116:
117: %:z +hh:mm numeric timezone (e.g., -04:00)
118:
119: %::z +hh:mm:ss numeric time zone (e.g., -04:00:00)
120:
121: %:::z numeric time zone with : to necessary precision (e.g., -04, +05:30)
122:
123: %Z alphabetic time zone abbreviation (e.g., EDT)
124:
125: By default, date pads numeric fields with zeroes.
126:
127: The following optional flags may follow `%':
128:
129: - (hyphen) do not pad the field
130:
131: _ (underscore) pad with spaces
132:
133: 0 (zero) pad with zeros
134:
135: ^ use upper case if possible
136:
137: # use opposite case if possible
138:
139: After any flags comes an optional field width, as a decimal number;
140:
141: then an optional modifier, which is either
142:
143: E to use the locale's alternate representations if available, or
144:
145: O to use the locale's alternate numeric symbols if available.
146:
147: Report bugs to <bug-coreutils@gnu.org>.
148:
1: [root@DB-Server ~]# man date
2:
3: DATE(1) User Commands DATE(1)
4:
5: NAME
6:
7: date - print or set the system date and time
8:
9: SYNOPSIS
10:
11: date [OPTION]... [+FORMAT]
12:
13: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
14:
15: DESCRIPTION
16:
17: Display the current time in the given FORMAT, or set the system date.
18:
19: -d, --date=STRING
20:
21: display time described by STRING, not ‘now’
22:
23: -f, --file=DATEFILE
24:
25: like --date once for each line of DATEFILE
26:
27: -r, --reference=FILE
28:
29: display the last modification time of FILE
30:
31: -R, --rfc-2822
32:
33: output date and time in RFC 2822 format
34:
35: --rfc-3339=TIMESPEC
36:
37: output date and time in RFC 3339 format. TIMESPEC=‘date’, ‘seconds’, or ‘ns’ for date and time to the indicated precision.
38:
39: -s, --set=STRING
40:
41: set time described by STRING
42:
43: -u, --utc, --universal
44:
45: print or set Coordinated Universal Time
46:
47: --help display this help and exit
48:
49: --version
50:
51: output version information and exit
52:
53: FORMAT controls the output. The only valid option for the second form specifies Coordinated Universal Time. Interpreted sequences are:
54:
55: %% a literal %
56:
57: %a locale’s abbreviated weekday name (e.g., Sun)
58:
59: %A locale’s full weekday name (e.g., Sunday)
60:
61: %b locale’s abbreviated month name (e.g., Jan)
62:
63: %B locale’s full month name (e.g., January)
64:
65: %c locale’s date and time (e.g., Thu Mar 3 23:05:25 2005)
66:
67: %C century; like %Y, except omit last two digits (e.g., 21)
68:
69: %d day of month (e.g, 01)
70:
71: %D date; same as %m/%d/%y
72:
73: %e day of month, space padded; same as %_d
74:
75: %F full date; same as %Y-%m-%d
76:
77: %g last two digits of year of ISO week number (see %G)
78:
79: %G year of ISO week number (see %V); normally useful only with %V
80:
81: %h same as %b
82:
83: %H hour (00..23)
84:
85: %I hour (01..12)
86:
87: %j day of year (001..366)
88:
89: %k hour ( 0..23)
90:
91: %l hour ( 1..12)
92:
93: %m month (01..12)
94:
95: %M minute (00..59)
96:
97: %n a newline
98:
99: %N nanoseconds (000000000..999999999)
100:
101: %p locale’s equivalent of either AM or PM; blank if not known
102:
103: %P like %p, but lower case
104:
105: %r locale’s 12-hour clock time (e.g., 11:11:04 PM)
106:
107: %R 24-hour hour and minute; same as %H:%M
108:
109: %s seconds since 1970-01-01 00:00:00 UTC
110:
111: %S second (00..60)
112:
113: %t a tab
114:
115: %T time; same as %H:%M:%S
116:
117: %u day of week (1..7); 1 is Monday
118:
119: %U week number of year, with Sunday as first day of week (00..53)
120:
121: %V ISO week number, with Monday as first day of week (01..53)
122:
123: %w day of week (0..6); 0 is Sunday
124:
125: %W week number of year, with Monday as first day of week (00..53)
126:
127: %x locale’s date representation (e.g., 12/31/99)
128:
129: %X locale’s time representation (e.g., 23:13:48)
130:
131: %y last two digits of year (00..99)
132:
133: %Y year
134:
135: %z +hhmm numeric timezone (e.g., -0400)
136:
137: %:z +hh:mm numeric timezone (e.g., -04:00)
138:
139: %::z +hh:mm:ss numeric time zone (e.g., -04:00:00)
140:
141: %:::z numeric time zone with : to necessary precision (e.g., -04, +05:30)
142:
143: %Z alphabetic time zone abbreviation (e.g., EDT)
144:
145: By default, date pads numeric fields with zeroes. The following optional flags may follow ‘%’:
146:
147: - (hyphen) do not pad the field _ (underscore) pad with spaces 0 (zero) pad with zeros ^ use upper case if possible # use opposite case if possible
148:
149: After any flags comes an optional field width, as a decimal number; then an optional modifier, which is either E to use the locale’s alternate representations if available,
150:
151: or O to use the locale’s alternate numeric symbols if available.
152:
153: ENVIRONMENT
154:
155: TZ Specifies the timezone, unless overridden by command line parameters. If neither is specified, the setting from /etc/localtime is used.
156:
157: AUTHOR
158:
159: Written by David MacKenzie.
160:
161: REPORTING BUGS
162:
163: Report bugs to <bug-coreutils@gnu.org>.
164:
165: COPYRIGHT
166:
167: Copyright ? 2006 Free Software Foundation, Inc.
168:
169: This is free software. You may redistribute copies of it under the terms of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to
170:
171: the extent permitted by law.
172:
173: SEE ALSO
174:
175: The full documentation for date is maintained as a Texinfo manual. If the info and date programs are properly installed at your site, the command
176:
177: info date
178:
179: should give you access to the complete manual.
180:
181: date 5.97 May 2011 DATE(1)
182:
2:查看date命令的版本信息
1: [root@DB-Server ~]# date --version
2:
3: date (GNU coreutils) 5.97
4:
5: Copyright (C) 2006 Free Software Foundation, Inc.
6:
7: This is free software. You may redistribute copies of it under the terms of
8:
9: the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
10:
11: There is NO WARRANTY, to the extent permitted by law.
12:
13: Written by David MacKenzie.
14:
3:运用-d参数
1: [root@DB-Server ~]# date -d now
2:
3: Thu Nov 14 22:52:45 PST 2013
4:
5: [root@DB-Server ~]# date -d 'next monday'
6:
7: Mon Nov 18 00:00:00 PST 2013
8:
9: [root@DB-Server ~]# date -d yesterday +%Y%m%d
10:
11: 20131113
12:
4:显示文件中的时间
1: [root@DB-Server ~]# cat >date.txt
2:
3: 2013-11-17 10:54:00
4:
5: 2013-11-22 11:11:11
6:
7: [root@DB-Server ~]# more date.txt
8:
9: 2013-11-17 10:54:00
10:
11: 2013-11-22 11:11:11
12:
13: [root@DB-Server ~]# date -f date.txt
14:
15: Sun Nov 17 10:54:00 PST 2013
16:
17: Fri Nov 22 11:11:11 PST 2013
18:
5:显示文件最后修改的时间
1: [root@DB-Server ~]# date -r install.log
2:
3: Fri Sep 6 11:31:15 PDT 2013
4:
6:按各种格式显示当前日期时间
这个命令的格式参数实在是太多了,在此没有必要每一个参数都尝试一遍,大家可以对唱Format参数表,自己敲一敲命令实践一下。
1: 6.1 只显示当前日期的年份
2:
3: [root@DB-Server ~]# date +%Y
4:
5: 2013
6:
7: 6.2 只显示当前日期的月份
8:
9: [root@DB-Server ~]# date +%m
10:
11: 11
12:
13: 6.3 显示各种格式类型的日期
14:
15: [root@DB-Server ~]# date +%D
16:
17: 11/14/13
18:
19: [root@DB-Server ~]# date '+%Y-%m-%d'
20:
21: 2013-11-14
22:
23: [root@DB-Server ~]# date +%Y-%m-%d
24:
25: 2013-11-14
26:
27: [root@DB-Server ~]# date +%m/%d/%y
28:
29: 11/14/13
30:
31: [root@DB-Server ~]# date +%m/%d/%Y
32:
33: 11/14/2013
34:
35: .......
36:
7: 设置系统时间
1: [root@DB-Server ~]# date -s "2013-11-14 00:00:00"
2:
3: Thu Nov 14 00:00:00 PST 2013