您的位置:首页 > 运维架构 > Linux

Linux命令学习总结:date命令

2013-11-17 11:09 441 查看
命令简介:

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命令帮助信息

[root@DB-Server ~]# date --help
Usage:date [OPTION]... [+FORMAT]
or:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system date.
-d, --date=STRING display time described by STRING, not `now'
-f, --file=DATEFILElike --date once for each line of DATEFILE
-r, --reference=FILEdisplay the last modification time of FILE
-R, --rfc-2822output date and time in RFC 2822 format
--rfc-3339=TIMESPEC output date and time in RFC 3339 format.
TIMESPEC=`date', `seconds', or `ns' for
date and time to the indicated precision.
-s, --set=STRINGset time described by STRING
-u, --utc, --universalprint or set Coordinated Universal Time
--help display this help and exit
--versionoutput version information and exit
FORMAT controls the output. The only valid option for the second form
specifies Coordinated Universal Time. Interpreted sequences are:
%% a literal %
%a locale's abbreviated weekday name (e.g., Sun)
%A locale's full weekday name (e.g., Sunday)
%b locale's abbreviated month name (e.g., Jan)
%B locale's full month name (e.g., January)
%c locale's date and time (e.g., Thu Mar 3 23:05:25 2005)
%C century; like %Y, except omit last two digits (e.g., 21)
%d day of month (e.g, 01)
%D date; same as %m/%d/%y
%e day of month, space padded; same as %_d
%F full date; same as %Y-%m-%d
%g last two digits of year of ISO week number (see %G)
%G year of ISO week number (see %V); normally useful only with %V
%h same as %b
%H hour (00..23)
%I hour (01..12)
%j day of year (001..366)
%k hour ( 0..23)
%l hour ( 1..12)
%m month (01..12)
%M minute (00..59)
%n a newline
%N nanoseconds (000000000..999999999)
%p locale's equivalent of either AM or PM; blank if not known
%P like %p, but lower case
%r locale's 12-hour clock time (e.g.,11:11:04 PM)
%R 24-hour hour and minute; same as %H:%M
%s seconds since 1970-01-01 00:00:00 UTC
%S second (00..60)
%t a tab
%T time; same as %H:%M:%S
%u day of week (1..7); 1 is Monday
%U week number of year, with Sunday as first day of week (00..53)
%V ISO week number, with Monday as first day of week (01..53)
%w day of week (0..6); 0 is Sunday
%W week number of year, with Monday as first day of week (00..53)
%x locale's date representation (e.g., 12/31/99)
%X locale's time representation (e.g., 23:13:48)
%y last two digits of year (00..99)
%Y year
%z +hhmm numeric timezone (e.g., -0400)
%:z +hh:mm numeric timezone (e.g., -04:00)
%::z +hh:mm:ss numeric time zone (e.g., -04:00:00)
%:::z numeric time zone with : to necessary precision (e.g., -04, +05:30)
%Z alphabetic time zone abbreviation (e.g., EDT)
By default, date pads numeric fields with zeroes.
The following optional flags may follow `%':
- (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
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, or
O to use the locale's alternate numeric symbols if available.
Report bugs to <bug-coreutils@gnu.org>.

[root@DB-Server ~]# man date
DATE(1) User Commands DATE(1)
NAME
date - print or set the system date and time
SYNOPSIS
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
DESCRIPTION
Display the current time in the given FORMAT, or set the system date.
-d, --date=STRING
display time described by STRING, not ‘now’
-f, --file=DATEFILE
like --date once for each line of DATEFILE
-r, --reference=FILE
display the last modification time of FILE
-R, --rfc-2822
output date and time in RFC 2822 format
--rfc-3339=TIMESPEC
 output date and time in RFC 3339 format. TIMESPEC=‘date’, ‘seconds’, or ‘ns’ fordate and time to the indicated precision.
-s, --set=STRING
set time described by STRING
-u, --utc, --universal
print or set Coordinated Universal Time
--help display this help and exit
--version
output version information and exit
FORMAT controls the output. The only valid option for the second formspecifies Coordinated Universal Time. Interpreted sequences are:
%% a literal %
%a locale’s abbreviated weekday name (e.g., Sun)
%A locale’s full weekday name (e.g., Sunday)
%b locale’s abbreviated month name (e.g., Jan)
%B locale’s full month name (e.g., January)
%c locale’s date and time (e.g., Thu Mar 3 23:05:25 2005)
%C century; like %Y, except omit last two digits (e.g., 21)
%d day of month (e.g, 01)
%D date; same as %m/%d/%y
%e day of month, space padded; same as %_d
%F full date; same as %Y-%m-%d
%g last two digits of year of ISO week number (see %G)
%G year of ISO week number (see %V); normally useful only with %V
%h same as %b
%H hour (00..23)
%I hour (01..12)
%j day of year (001..366)
%k hour ( 0..23)
%l hour ( 1..12)
%m month (01..12)
%M minute (00..59)
%n a newline
%N nanoseconds (000000000..999999999)
%p locale’s equivalent of either AM or PM; blank if not known
%P like %p, but lower case
%r locale’s 12-hour clock time (e.g.,11:11:04 PM)
%R 24-hour hour and minute; same as %H:%M
%s seconds since 1970-01-01 00:00:00 UTC
%S second (00..60)
%t a tab
%T time; same as %H:%M:%S
%u day of week (1..7); 1 is Monday
%U week number of year, with Sunday as first day of week (00..53)
%V ISO week number, with Monday as first day of week (01..53)
%w day of week (0..6); 0 is Sunday
%W week number of year, with Monday as first day of week (00..53)
%x locale’s date representation (e.g., 12/31/99)
%X locale’s time representation (e.g., 23:13:48)
%y last two digits of year (00..99)
%Y year
%z +hhmm numeric timezone (e.g., -0400)
%:z +hh:mm numeric timezone (e.g., -04:00)
%::z +hh:mm:ss numeric time zone (e.g., -04:00:00)
%:::z numeric time zone with : to necessary precision (e.g., -04, +05:30)
%Z alphabetic time zone abbreviation (e.g., EDT)
By default, date pads numeric fields with zeroes. The following optional flags may follow ‘%’:
- (hyphen) do not pad the field_ (underscore) pad with spaces0 (zero) pad with zeros^ use upper case if possible# use opposite case if possible
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,
or O to use the locale’s alternate numeric symbols if available.
ENVIRONMENT
TZ Specifies the timezone, unless overridden by command line parameters. If neither is specified, the setting from /etc/localtime is used.
AUTHOR
Written by David MacKenzie.
REPORTING BUGS
Report bugs to <bug-coreutils@gnu.org>.
COPYRIGHT
Copyright ? 2006 Free Software Foundation, Inc.
This is free software. You may redistribute copies of it under the terms ofthe GNU General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to
the extent permitted by law.
SEE ALSO
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
info date
should give you access to the complete manual.
date 5.97 May 2011 DATE(1)

2:查看date命令的版本信息

 [root@DB-Server ~]# date--version
date (GNU coreutils) 5.97
Copyright (C) 2006 Free Software Foundation, Inc.
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, tothe extent permitted by law.
Written by David MacKenzie.

3:运用-d参数

[root@DB-Server ~]# date -d now
Thu Nov 14 22:52:45 PST2013
[root@DB-Server ~]# date -d 'next monday'
Mon Nov 18 00:00:00 PST2013
[root@DB-Server ~]# date -d yesterday +%Y%m%d
20131113

4:显示文件中的时间

[root@DB-Server ~]# cat >date.txt
2013-11-17 10:54:00
2013-11-2211:11:11
[root@DB-Server ~]# more date.txt
2013-11-17 10:54:00
2013-11-2211:11:11
[root@DB-Server ~]# date -f date.txt
Sun Nov 17 10:54:00 PST2013
Fri Nov 2211:11:11 PST2013

5:显示文件最后修改的时间

[root@DB-Server ~]# date -r install.log
Fri Sep 611:31:15 PDT2013

6:按各种格式显示当前日期时间

这个命令的格式参数实在是太多了,在此没有必要每一个参数都尝试一遍,大家可以对唱Format参数表,自己敲一敲命令实践一下。

6.1 只显示当前日期的年份
[root@DB-Server ~]# date +%Y
2013
6.2 只显示当前日期的月份
[root@DB-Server ~]# date +%m
11
6.3 显示各种格式类型的日期
[root@DB-Server ~]# date +%D
11/14/13
[root@DB-Server ~]# date '+%Y-%m-%d'
2013-11-14
[root@DB-Server ~]# date +%Y-%m-%d
2013-11-14
[root@DB-Server ~]# date +%m/%d/%y
11/14/13
[root@DB-Server ~]# date +%m/%d/%Y
11/14/2013
.......

7: 设置系统时间

[root@DB-Server ~]# date -s "2013-11-14 00:00:00"
 Thu Nov 14 00:00:00 PST2013
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: