Linux命令学习总结:date命令

时间:2022-07-08 09:03:02

命令简介:

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