linux命令總結之date命令

命令簡介:

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命令的版本信息

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@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'
date --help
  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) 
man date

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
相關文章
相關標籤/搜索