Linux命令学习总结:date命令
2013-11-17 11:09 潇湘隐者 阅读(35277) 评论(2) 收藏 举报命令简介:
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
浙公网安备 33010602011771号