This tutorial explains Linux “date” command, options and its usage with examples.
DESCRIPTION
Display the current time in the given FORMAT, or set the system date.
SYNOPSIS
date [OPTION]… [+FORMAT] date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]
OPTIONS
-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
-s, –set=STRING
set time described by STRING
-u, –utc, –universal
print or set Coordinated Universal Time
FORMAT
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 (Sun..Sat)
%A
locale’s full weekday name, variable length (Sunday..Saturday)
%b
locale’s abbreviated month name (Jan..Dec)
%B
locale’s full month name, variable length (January..December)
%c
locale’s date and time (Sat Nov 04 12:02:33 EST 1989)
%C
century (year divided by 100 and truncated to an integer) [00-99]
%d
day of month (01..31)
%D
date (mm/dd/yy)
%e
day of month, blank padded ( 1..31)
%F
same as %Y-%m-%d
%g
the 2-digit year corresponding to the %V week number
%G
the 4-digit year corresponding to the %V week number
%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 upper case AM or PM indicator (blank in many locales)
%P
locale’s lower case am or pm indicator (blank in many locales)
%r
time, 12-hour (hh:mm:ss [AP]M)
%R
time, 24-hour (hh:mm)
%s
seconds since `00:00:00 1970-01-01 UTC’ (a GNU extension)
%S
second (00..60); the 60 is necessary to accommodate a leap second
%t
a horizontal tab
%T
time, 24-hour (hh:mm:ss)
%u
day of week (1..7); 1 represents Monday
%U
week number of year with Sunday as first day of week (00..53)
%V
week number of year with Monday as first day of week (01..53)
%w
day of week (0..6); 0 represents Sunday
%W
week number of year with Monday as first day of week (00..53)
%x
locale’s date representation (mm/dd/yy)
%X
locale’s time representation (%H:%M:%S)
%y
last two digits of year (00..99)
%Y
year (1970…)
%z
RFC-822 style numeric timezone (-0500) (a nonstandard extension)
%Z
time zone (e.g., EDT), or nothing if no time zone is determinable
By default, date pads numeric fields with zeroes. GNU date recognizes the following modifiers between `%’ and a numeric directive.
`-‘ (hyphen) do not pad the field `_’ (underscore) pad the field with spaces
EXAMPLES
1. Simple Example
$ date Thu Dec 26 22:48:07 PST 2013
2. Display Date from a String Value
$ date --date="2 Feb 2014" Sun Feb 2 00:00:00 PST 2014 $ date --date="Feb 2 2014 13:12:10" Sun Feb 2 13:12:10 PST 2014
3. Read Date Patterns from a file
$ cat datefile Sept 9 1986 Aug 23 1987 $ date --file=datefile Tue Sep 9 00:00:00 PDT 1986 Sun Aug 23 00:00:00 PDT 1987
4. Display date in mm-dd-yy format
$ date +"%m-%d-%y" 12-26-13
5. Display time only
$ date +"%T" 22:52:09
6. Get Relative Date
$ date --date="next mon" Mon Dec 30 00:00:00 PST 2013
7. Display Past Date
$ date --date='3 seconds ago' Thu Dec 26 22:54:07 PST 2013 $ date --date="1 day ago" Wed Dec 25 22:54:33 PST 2013 $ date --date="1 month ago" Tue Nov 26 22:55:17 PST 2013 $ date --date="1 year ago" Wed Dec 26 22:55:32 PST 2012
7. Set Date and Time
$ date Thu Dec 26 22:48:07 PST 2013 $ date -s "Sun May 20 21:00:00 PDT 2013" Sun May 20 21:00:00 PDT 2013 $ date Sun May 20 21:00:05 PDT 2013
Note : date can also be set in formats like
date +%Y%m%d -s "20081128"
8. Display Universal Time
$ date Thu Dec 26 22:56:54 PST 2013 $ date -u Fri Dec 27 06:56:57 UTC 2013
Sanfoundry Global Education & Learning Series – 1000 Linux Tutorials.
- Practice Programming MCQs
- Apply for Programming Internship
- Check Information Technology Books
- Check Linux Books