DATE(1) | General Commands Manual | DATE(1) |
date
— display or
set date and time
date |
[-ajnRUu ] [-d
date] [-r
seconds] [-z
zone]
[+ format]
[[[[[[CC]yy]mm]dd]HH]MM[. SS]] |
date |
[-ajnRu ] -f
input_format new_date
[+ format] |
date
displays the current date and time
when invoked without arguments. Providing arguments will format the date and
time in a user-defined way or set the date. Only the superuser may set the
date.
The options are as follows:
-a
-a
implies
-n
.-d
date-f
input_fmt.
SS]
format. Parsing is done using
strptime(3).-j
-n
date
will set the time on all of the machines in
the local group. The -n
option stops
date
from setting the time for other than the
current machine.-R
-r
seconds-U
date
to that which
existed when it was invoked. This is only useful after an earlier
-u
or -z
option.-u
-z
zonedate
to
zone. If zone is an empty
string, revert to the system's default timezone (ignoring any setting of
TZ
).Note the -d
, -U
,
-u
, and -z
options are
applied when encountered, hence specifying -u
before
-d
will cause the date to be
parsed as coordinated universal time, by default, whereas if
-u
is specified after -d
the
date will be parsed using the default timezone, then
output will be generated in UTC.
An operand with a leading plus (+
) sign
signals a user-defined format string which specifies the format in which to
display the date and time. The format string may contain any of the
conversion specifications described in the
strftime(3) manual page, as
well as any arbitrary text. A ⟨newline⟩ character is always
output after the characters specified by the format string. The format
string for the default display is:
%a %b %e %H:%M:%S %Z %Y
If an operand does not have a leading plus sign, it is interpreted as a value for setting the system's notion of the current date and time. The canonical representation for setting the date and time is:
Everything but the minutes is optional.
Time changes for Daylight Saving and Standard Time and leap seconds and years are handled automatically.
The following environment variables affect the execution of
date
:
TZ
If /usr/share/zoneinfo/GMT is absent, UTC leap seconds are loaded from /usr/share/zoneinfo/posixrules.
The command:
date '+DATE: %m/%d/%y%nTIME:
%H:%M:%S'
will display:
DATE: 11/21/87 TIME: 13:36:16
The command:
date 8506131627
sets the date to “June 13, 1985, 4:27
PM
”.
The command:
date 1432
sets the time to 2:32 PM
, without
modifying the date.
The command:
date +%s
prints the current time as seconds since the Epoch.
The command:
date -z America/Chicago -d 13:00 -z
Asia/Tokyo +%H:%M
indicates what the time will be in Tokyo when it is 13:00 in
Chicago. Any strftime(3)
string could be used for the output. The first -z
option can be omitted to parse the time as specified by
TZ
(usually the local timezone), or the second could
be replaced by -U
to show the parsed time in the
local timezone.
Either of the commands:
date -u -d 1970-01-01T00:00:00 -U
+%c
date -r 0 +%c
print the local time of the UNIX epoch.
Exit status is 0 on success, 1 if unable to set the date, and 2 if able to set the local date, but unable to set it globally.
Occasionally, when
timed(8) synchronizes the time
on many hosts, the setting of a new time value may require more than a few
seconds. On these occasions, date
prints:
‘Network time being set
’. The message
‘Communication error with
’
timed(8) occurs when the
communication between date
and
timed(8) fails.
adjtime(2), gettimeofday(2), settimeofday(2), parsedate(3), strftime(3), utmp(5), environ(7), timed(8)
R. Gusella and S. Zatti, TSP: The Time Synchronization Protocol for UNIX 4.3BSD.
The date
utility is expected to be
compatible with IEEE Std 1003.2
(“POSIX.2”). However, achieving true compatability
requires running date
with the environment variable
POSIXLY_CORRECT
set, in order to parse the time
string in the archaic format POSIX demands, rather than the more rational
version described above.
A date
utility appeared in
Version 1 AT&T UNIX.
September 17, 2024 | NetBSD 10.99 |