xref: /freebsd/contrib/tzcode/date.1 (revision 2e3f49888ec8851bafb22011533217487764fdb0)
This file is in the public domain, so clarified as of
2009-05-17 by Arthur David Olson.
date 1 "" "Time Zone Database"
NAME
date - show and set date and time
SYNOPSIS
date [ \*-u ] [ \*-c ] [ \*-r seconds ] [ + format ] [ [yyyy]mmddhhmm[yy][.ss] ]
DESCRIPTION
\\$3\*(lq\\$1\*(rq\\$2 .. The date command without arguments writes the date and time to the standard output in the form

1 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 (\c .q "+" ), the rest of the argument is used as a format that controls what appears in the output. In the format, when a percent sign (\c .q "%" 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 .q "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.

FILES
/etc/localtime local timezone file

/usr/lib/locale/\f2L/LC_TIME description of time locale \f2L

/usr/share/zoneinfo timezone information directory

/usr/share/zoneinfo/posixrules default DST rules (obsolete, and can cause bugs if present)

/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 .