date − show and set date and time
date [ -u ] [ -c ] [ -r seconds ] [ +format ] [ [yyyy]mmddhhmm[yy][.ss] ]
The date command without arguments writes the date and time to the standard output in the form
Wed Mar 8 14:54:40 EST 1989
with EST replaced by the local time zone’s abbreviation (or by the abbreviation for the time zone specified in the TZ environment variable if set). The exact output format depends on the locale.
If a command-line argument starts with a plus sign (“+”), the rest of the argument is used as a format that controls what appears in the output. In the format, when a percent sign (“%” appears, it and the character after it are not output, but rather identify part of the date or time to be output in a particular way (or identify a special character to output):
Sample output |
Explanation | ||
%a |
|||
Wed |
Abbreviated weekday name* | ||
%A |
|||
Wednesday |
Full weekday name* | ||
%b |
|||
Mar |
Abbreviated month name* | ||
%B |
|||
March |
Full month name* | ||
%c |
|||
Wed Mar 08 14:54:40 1989 |
Date and time* | ||
%C |
|||
19 |
Century | ||
%d |
|||
08 |
Day of month (always two digits) | ||
%D |
|||
03/08/89 |
Month/day/year (eight characters) | ||
%e |
|||
8 |
Day of month (leading zero blanked) | ||
%h |
|||
Mar |
Abbreviated month name* | ||
%H |
|||
14 |
24-hour-clock hour (two digits) | ||
%I |
|||
02 |
12-hour-clock hour (two digits) | ||
%j |
|||
067 |
Julian day number (three digits) | ||
%k |
|||
2 |
12-hour-clock hour (leading zero blanked) | ||
%l |
|||
14 |
24-hour-clock hour (leading zero blanked) | ||
%m |
|||
03 |
Month number (two digits) | ||
%M |
|||
54 |
Minute (two digits) | ||
%n |
|||
\n |
newline character | ||
%p |
|||
PM |
AM/PM designation | ||
%r |
|||
02:54:40 PM |
Hour:minute:second AM/PM designation | ||
%R |
|||
14:54 |
Hour:minute | ||
%S |
|||
40 |
Second (two digits) | ||
%t |
|||
\t |
tab character | ||
%T |
|||
14:54:40 |
Hour:minute:second | ||
%U |
|||
10 |
Sunday-based week number (two digits) | ||
%w |
|||
3 |
Day number (one digit, Sunday is 0) | ||
%W |
|||
10 |
Monday-based week number (two digits) | ||
%x |
|||
03/08/89 |
Date* | ||
%X |
|||
14:54:40 |
Time* | ||
%y |
|||
89 |
Last two digits of year | ||
%Y |
|||
1989 |
Year in full | ||
%z |
|||
-0500 |
Numeric time zone | ||
%Z |
|||
EST |
Time zone abbreviation | ||
%+ |
|||
Wed Mar 8 14:54:40 EST 1989 |
Default output format* |
* The exact output depends on the locale.
If a character other than one of those shown above appears after a percent sign in the format, that following character is output. All other characters in the format are copied unchanged to the output; a newline character is always added at the end of the output.
In Sunday-based week numbering, the first Sunday of the year begins week 1; days preceding it are part of “week 0”. In Monday-based week numbering, the first Monday of the year begins week 1.
To set the date, use a command line argument with one of the following forms:
1454 |
24-hour-clock hours (first two digits) and minutes | |
081454 |
Month day (first two digits), hours, and minutes | |
03081454 |
Month (two digits, January is 01), month day, hours, minutes | |
8903081454 |
Year, month, month day, hours, minutes | |
0308145489 |
Month, month day, hours, minutes, year | |
(on System V-compatible systems) | ||
030814541989 |
Month, month day, hours, minutes, four-digit year | |
198903081454 |
Four-digit year, month, month day, hours, minutes |
If the century, year, month, or month day is not given, the current value is used. Any of the above forms may be followed by a period and two digits that give the seconds part of the new time; if no seconds are given, zero is assumed.
These options
are available:
-u or -c
Use Universal Time when setting and showing the date and time.
-r seconds
Output the date that corresponds to seconds past the epoch of 1970-01-01 00:00:00 UTC, where seconds should be an integer, either decimal, octal (leading 0), or hexadecimal (leading 0x), preceded by an optional sign.
/etc/localtime |
local timezone file | |
/usr/lib/locale/L/LC_TIME |
description of time locale L | |
/usr/share/zoneinfo |
timezone information directory | |
/usr/share/zoneinfo/posixrules |
used with POSIX-style TZ’s | |
/usr/share/zoneinfo/GMT |
for UTC leap seconds |
If /usr/share/zoneinfo/GMT is absent, UTC leap seconds are loaded from /usr/share/zoneinfo/posixrules.