date Command in Linux with Examples

This tutorial explains Linux “date” command, options and its usage with examples.

date – print or set the system date and time.


Display the current time in the given FORMAT, or set the system date.


date [OPTION]… [+FORMAT] date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]


-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 controls the output. The only valid option for the second form specifies Coordinated Universal Time. Interpreted sequences are:
a literal %
locale’s abbreviated weekday name (Sun..Sat)
locale’s full weekday name, variable length (Sunday..Saturday)
locale’s abbreviated month name (Jan..Dec)
locale’s full month name, variable length (January..December)
locale’s date and time (Sat Nov 04 12:02:33 EST 1989)
century (year divided by 100 and truncated to an integer) [00-99] %d
day of month (01..31)
date (mm/dd/yy)
day of month, blank padded ( 1..31)
same as %Y-%m-%d
the 2-digit year corresponding to the %V week number
the 4-digit year corresponding to the %V week number
same as %b
hour (00..23)
hour (01..12)
day of year (001..366)
hour ( 0..23)
hour ( 1..12)
month (01..12)
minute (00..59)
a newline
nanoseconds (000000000..999999999)
locale’s upper case AM or PM indicator (blank in many locales)
locale’s lower case am or pm indicator (blank in many locales)
time, 12-hour (hh:mm:ss [AP]M)
time, 24-hour (hh:mm)
seconds since `00:00:00 1970-01-01 UTC’ (a GNU extension)
second (00..60); the 60 is necessary to accommodate a leap second
a horizontal tab
time, 24-hour (hh:mm:ss)
day of week (1..7); 1 represents Monday
week number of year with Sunday as first day of week (00..53)
week number of year with Monday as first day of week (01..53)
day of week (0..6); 0 represents Sunday
week number of year with Monday as first day of week (00..53)
locale’s date representation (mm/dd/yy)
locale’s time representation (%H:%M:%S)
last two digits of year (00..99)
year (1970…)
RFC-822 style numeric timezone (-0500) (a nonstandard extension)
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


Note: Join free Sanfoundry classes at Telegram or Youtube

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"

5. Display time only

$ date +"%T"

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.

If you wish to look at all Linux commands and their usage examples, go to Linux Commands Tutorial.

If you find any mistake above, kindly email to [email protected]

Subscribe to our Newsletters (Subject-wise). Participate in the Sanfoundry Certification contest to get free Certificate of Merit. Join our social networks below and stay updated with latest contests, videos, internships and jobs!

Youtube | Telegram | LinkedIn | Instagram | Facebook | Twitter | Pinterest
Manish Bhojasia - Founder & CTO at Sanfoundry
Manish Bhojasia, a technology veteran with 20+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He lives in Bangalore, and focuses on development of Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Stay connected with him at LinkedIn.

Subscribe to his free Masterclasses at Youtube & discussions at Telegram SanfoundryClasses.