date [-nu] [-r file] [+format]
date [[[[[cc]yy]mm]dd]hh]mm[.ss]
+ prefixes format codes or arbitrary text (ex :, /,- ).
A <newline> is appended to the string.
N.B. If used in crontab command fiels, % must be escaped.
| The default format is: | "%a %b %e %H:%M:%S %Z %Y"
|
| sample output: | Sat Feb 5 18:09:28 EST 2005 |
Useful forms:
export TODAY=`date +%y%m%d` 101108 export yymmdd=`date +"%y%m%d"` 100915 export LOGYYMMDDHHMM=`date +log.%y%m%d%H%M` log.0807201859
date +"%m/%d %H:%M" 07/20 18:56
touch `date +%y-%m-%d_%H:%M` 10-12-31_23:59
-r output the modification time of
--reference=file file
date -r 0test
Thu Aug 19 18:05:09 EDT 2010
format codes (arranged by function, not alphabetically)
%m mm month (01..12) (how to blank padded?? ie ' 1, 2, 3' vs '01,02,03' ?? )
%h Mon %b locale's abbreviated month (Jan..Dec)
%B locale's full month, variable length ex:(January..December)
%d dd (01..31) %e ( 1..31)
%y yy two digit year (00..99)
%Y ccyy year (1970...) %C cc century [00-99]
%g 2-digit year corresponding to the %V week number %G 4-digit
%F %Y-%m-%d
| for this locale | |
%D mm/dd/yy | %x mm/dd/yy
|
%T hh:mm:ss 24-hour | %X %H:%M:%S
|
%R 24-hour (hh:mm)
%r time, 12-hour (hh:mm:ss x.M)
%I HH hours (01..12) %l† 1..12 %H 00..23 %k 0..23 %p upper case AM or PM (blank in many locales) %P lower case am or pm %M MM minutes (00..59) %S SS second (00..60)) The 60 is necessary to accommodate a leap second %N nanoseconds (000000000..999999999) %c locale's date and time ex: Sat Nov 04 12:02:33 EST 1989 %j day of year (001..366) %u day of week (1..7); 7 represents Sunday mtwtfss %w (0..6); 0 represents Sunday smtwtfs %a locale's abbreviated weekday (Sun..Sat) %A locale's full weekday, variable length (Sunday..Saturday) %U week number Sunday as first day of week (00..53) %W week number Monday as first day of week (00..53) %V (01..53) %z -zzzz RFC-822 style numeric timezone (-0500) %: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 time zone (e.g., EDT) nothing if no time zone is determinable %s seconds since 00:00:00 1970-01-01 UTC
To convert
literals:
By default, date pads numeric fields with zeroes.
GNU (not BSD) date recognizes modifiers between
examples:
date and time seconds from the Epoch. ( i.e.
Without the
from BSD documentation of date and strtime on apple OS X
Linux: date (GNU coreutils) 5.97
Copyright (C) 2006
%s value like 1212642879 use date -d "1970-01-01 1212642879 sec utc"%n newline ; %% percent; %t horizontal tab
% and a numeric:
- (hyphen) do not pad the field _ (underscore) pad the field with spaces
%_H == %k
%-m/%-d/%y 1/2/50
TZ Specifies the timezone, unless overridden by command line parameters.
If neither is specified, the setting from /etc/localtime is used.
-d
-de=STRING display time described by STRING not now.
> echo $TZ
US/Eastern
date -d "2010/12/31" Fri Dec 31 00:00:00 EST 2010
date -d "12/31/2010" Fri Dec 31 00:00:00 EST 2010
date -d "2010-12-31 23:58:57" Fri Dec 31 23:58:57 EST 2010
date -d "23:58:57 12/31/2010" Fri Dec 31 23:58:57 EST 2010
date -d "12/31/2010 23:58:57" Fri Dec 31 23:58:57 EST 2010
date -d "12/31/2010 23 sec" Fri Dec 31 00:00:23 EST 2010
To convert %s value like 1212642879 use date -d "1970-01-01 1212642879 sec utc"-e=datefile like de once for each line of datefile
-s
--set=string set time described by string
date -s "2010-12-31 23:59:00"
-n don't synchronize the clocks on groups
of machines using the utility timed(8).
By default, if timed is running, date will set the time on all of the machines in the local group. -n inhibites that.
Dec 31 19:00:00 EST 1969 )
-u Display or set the date in UTC (universal) time.
+ , date uses the argument for setting the system's date if user has sufficient
authorization.
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
The only valid option for the this form specifies Coordinated Universal Time.
-u GMT ex: Sat Feb 5 14:49:42 GMT 2005
--utc
--universal Coordinated Universal Time local TZ Sat Feb 5 09:49:59 EST 2005-ITIMESPEC
--iso-8601[=TIMESPEC] output in ISO 8601 format.
TIMESPEC precision for date only, hours, minutes, or seconds for date and time to the indicated precision.
> date --iso-8601=date
2010-08-23
> date --iso-8601=hours
2010-08-23T21-0400
> date --iso-8601=minutes
2010-08-23T21:05-0400
> date --iso-8601=seconds
2010-08-23T21:05:53-0400
-R
--rfc-822 output RFC-822 compliant date string ex: Sat Feb 5 09:50:23 EST 2005
--help display this help and exit--version output version information and exit
date (coreutils) 4.5.3