DATE(1) | General Commands Manual | DATE(1) |
date
—
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.
date
:
TZ
If /usr/share/zoneinfo/GMT is absent, UTC leap seconds are loaded from /usr/share/zoneinfo/posixrules.
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.
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.
R. Gusella and S. Zatti, TSP: The Time Synchronization Protocol for UNIX 4.3BSD.
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.
date
utility appeared in
Version 1 AT&T UNIX.
September 17, 2024 | NetBSD 10.99 |