date(1) — Commands
NAME
date − Displays or sets the date
SYNOPSIS
Without Superuser Authority − Displays the Date
date [−u] [+field_descriptor ...]
With Superuser Authority − Sets the Date
date [−nu] [MMddhhmm.ssyy | alternate_date_format] [+field_descriptor ...]
Using XPG4-UNIX − Sets or Displays the Date
date [-u] mmddHHMM[yy]
date [−u] [+field_descriptor ...]
Using the Century Field Provided by Digital − Sets the Date
date mmddHHMM[[cc]yy][.ss]
date [[cc]yy]mmddHHMM[.ss]
date mmddHHMM[.ss[[cc]yy]]
STANDARDS
Interfaces documented on this reference page conform to industry standards as follows:
date: XPG4, XPG4−UNIX
Refer to the standards(5) reference page for more information about industry standards and associated tags.
DESCRIPTION
The date command displays the date and, with superuser authority, sets the system date. The date command has been enhanced to support setting the system date past the year 1999, thus providing customers with the ability to begin testing their software for potential century rollover problems.
Displaying the Date
The date command writes the current date and time to standard output if called with no flags or with a flag list that begins with a + (plus sign).
If you follow date with a + (plus sign) and a field descriptor, you can control the output of the command. You must precede each field descriptor with a % (percent sign). The system replaces the field descriptor with the specified value. Enter a literal % as %%. The date command copies any other characters to standard output without change. The date command always ends the string with a newline character. Output fields are fixed size (zero padded if necessary).
[Digital] The date command prints out a usage message on any unrecognized flags or input.
Field Descriptors
aDisplays the locale’s abbreviated weekday name (Sun to Sat or the non-English equivalent).
ADisplays the locale’s full weekday name.
bDisplays the locale’s abbreviated month name.
BDisplays the locale’s full month name.
cDisplays the locale’s appropriate time and date representation.
CDisplays the locale’s century (the year divided by 100 and truncated to an integer) as a decimal number (00 to 99).
dDisplays the day of month as a decimal number (01 to 31).
DDisplays the date in the format mm/dd/yy independent of the value specified by the LC_TIME environment variable, if defined.
eDisplays the day of the month as a decimal number (1 to 31 in a 2-digit field with leading space fill).
EcSpecifies the locale’s alternative date and time representation.
ECSpecifies the name of the base year (period) in the locale’s alternative representation.
ExSpecifies the locale’s alternative date representation.
EXSpecifies the locale’s alternative time representation.
EySpecifies the offset from %EC (year only) in the locale’s alternative representation.
EYSpecifies the full alternative year representation.
hA synonym for %b.
HDisplays the hour as a decimal number (00 to 23).
IDisplays the hour as a decimal number (01 to 12).
jDisplays the day of year as a decimal number (001 to 366).
mDisplays the month of year as a decimal number (01 to 12).
MDisplays the minute as a decimal number (00 to 59).
nInserts a newline character.
N[Digital] Represents the alternative era name.
o[Digital] Represents the alternative era year.
OdSpecifies the day of the month using the locale’s alternative numeric symbols.
OeSpecifies the day of the month using the locale’s alternative numeric symbols.
OHSpecifies the hour (24-hour clock) using the locale’s alternative numeric symbols.
OISpecifies the hour (12-hour clock) using the locale’s alternative numeric symbols.
OmSpecifies the month using the locale’s alternative numeric symbols.
OMSpecifies the minutes using the locale’s alternative numeric symbols.
OSSpecifies the seconds using the locale’s alternative numeric symbols.
OuSpecifies the weekday as a number in the locale’s alternative representation (Monday=1).
OUSpecifies the week number of the year (Sunday as the first day of the week) using the locale’s alternative numeric symbols.
OwSpecifies the weekday as a number in the locale’s alternative representation (Sunday = 0).
OWSpecifies the week number of the year (Monday as the first day of the week) using the locale’s alternative numeric symbols.
OySpecifies the year (offset from %C) in alternative representation.
pDisplays the locale’s equivalent of either AM or PM.
rDisplays the time (12-hour clock) using AM/PM notation (or the non-English equivalent) in the format hh:mm:ss AM or hh:mm:ss PM.
SDisplays the second as a decimal number (00 to 61).
tInserts a tab character.
TDisplays the time in 24-hour clock format as hh:mm:ss (the default), or as specified by the LC_TIME environment variable, if defined.
uDisplays the weekday as a decimal number [1,7], with 1 representing Monday.
UDisplays the week number of the year (Sunday is the first day of the week) as a decimal number (00 to 53). All days in a new year preceding the first Sunday are considered to be in week 0.
VDisplays the week number of the year (Monday as the first day of the week) as a decimal number (01 to 53). If the week containing January 1 has four or more days in the new year, then it is considered week 1; otherwise, it is week 53 or the previous year, and the next week is week 1.
wDisplays the day of the week as a decimal number (Sunday = 0).
WDisplays the week number of the year (Monday is the first day of the week) as a decimal number (00 to 53). All days in a new year preceding the first Monday are considered to be in week 0.
xDisplays the locale’s appropriate date representation.
XDisplays the locale’s appropriate time representation.
yDisplays the last two numbers of the year as a decimal number (00 to 99).
YDisplays the full year as a decimal number.
ZDisplays the time zone name, or no characters if the time zone cannot be determined.
%%Inserts a % character.
Setting the Date
Only a user operating with superuser authority can change the date and time.
The default input format for setting the date is mmddHHMM[[cc]yy][.ss] where:
•mm is the month number (01=January).
•dd is the number of the day in the month.
•HH is the hour in the day (using a 24-hour clock).
•MM is the number of minutes.
•cc is the first two digits of the year.
•yy is the last two digits of the year. If this field is omitted, the current year is used.
•ss is the number of seconds.
Note that the LC_TIME variable, if defined, controls the ordering of the day (dd) and month (mm) numbers in these formats. The default order is the month (mm) followed by the day (dd).
Each of the Digital formats allows you to specify the century (first two digits of the year). This century field (cc) is optional to ensure that input formats previously accepted by the date command are still supported.
Currently, the XPG4-UNIX format does not have a century field. This is consistent with current X/Open specifications regarding the date command. The century field will be added to this format in a future release of the operating system once this new field is officially supported in future revisions of X/Open’s UNIX specification.
[Digital] Reset the date in single-user mode only. Changing the date in multiuser mode could cause the creation and modifications dates for user files to be inconsistent.
[Digital] To change the year, the system disk must be updated with the new year information. To change the year, in single-user mode enter the command:
mount -u /
after you enter a date containing a new year. The mount -u / command writes the new year into the superblock on the system disk. The root file system is now mounted read/write.
Handling of Two-Digit Year Input
When the year is specified using two digits (as in the XPG4-UNIX format or when the [cc] field is omitted from the Digital formats), the century is determined in the following manner: if the specified two-digit year is between 69 and 99 inclusive, the 20th century is assumed (that is, 19yy); otherwise, the 21st century is assumed (that is, 20yy).
This algorithm for determining the century is consistent with current drafts of forthcoming X/Open UNIX specifications regarding two-digit year handling in various system interfaces and commands, including the date command. This algorithm is based on the standard UNIX epoch (12:00:00 AM Jan 1, 1970 UTC), minus one year to account for different time zones. Internal UNIX time handling is based on the number of seconds in this epoch.
Handling of Ambiguous Input
If the input string is ambiguous, that is, if the format cannot be conclusively determined from the data, the date command will issue a warning to stderr and assume the mmddHHMM[[cc]yy][.ss] format. To avoid ambiguous input, use one of the three Digital formats and specify the [cc] field.
FLAGS
−n[Digital] Does not set the time globally on all machines in a local area network that have their clocks synchronized (superuser only).
−uPerforms operations as if the TZ environment variable was set to the string GMT0. Otherwise, date uses the time zone indicated by the TZ environment variable or the system default if that variable is not set.
ENVIRONMENT VARIABLES
The following environment variables affect the execution of date:
LANGProvides a default value for the internationalization variables that are unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization variables contain an invalid setting, the utility behaves as if none of the variables had been defined.
LC_ALLIf set to a non-empty string value, overrides the values of all the other internationalization variables.
LC_CTYPEDetermines the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multibyte characters in arguments).
LC_MESSAGESDetermines the locale for the format and contents of diagnostic messages written to standard error.
LC_TIMEDetermines the format of the date and time strings written by date.
NLSPATHDetermines the location of message catalogues for the processing of LC_MESSAGES.
TZDetermines the time zone in which the time and date are written, unless the −u flag is specified. If the TZ variable is not set and the −u flag is not specified, a system default time zone is used.
EXAMPLES
1.To display current date and time, enter:
date
Depending on your current locale, the output might look like one of the following:
Thu Apr 12 13:21:30 EDT 1992
jeu 12 avr 17:21:30 CUT 1992
tor 12 apr 17:21:30 CUT 1992
The first output line is for an American English locale, the second is for a French locale, and the third is for a Danish locale.
2.To set the date and time, enter:
date 02171425.45
This sets the date and time to 14:25:45 (45 seconds after 2:25 p.m.) February 17 of the current year.
3.To display the date and time in a specified format, enter:
date +"%r %d %h %y (%a)"
This displays the date (assume current year is 1993) shown in Example 2 as:
02:25:03 PM 17 Feb 93 (Fri)
Do not set the date in multi-user mode.
Year 2000 Examples
To set the date to 09:34:00 AM Jan 7, 2000:
1.Using the mmddHHMM[[cc]yy][.ss] Digital format:
date 010709342000
date 0107093400.00
date 010709342000.00
2.Using the [[cc]yy]mmddHHMM[.ss] Digital format:
date 0001070934
date 200001070934
date 200001070934.00
3.Using the mmddHHMM[.ss[[cc]yy]] Digital format:
date 01070934.0000
date 01070934.002000
4.Using the mmddHHMM[yy] XPG4-UNIX format:
date 0107093400
5.An example of ambiguous input:
date 0101010000
This input could be recognized as one of the following formats:
mmddHHMM[[cc]yy][.ss] meaning 01:00:00 AM Jan 1, 2000
[[cc]yy]mmddHHMM[.ss] meaning 12:00:00 AM Jan 1, 2001
In this case, the date command will display a warning and assume the mmddHHMM[[cc]yy][.ss] format, setting the date to 01:00:00 AM Jan 1, 2000.
RELATED INFORMATION
Functions: gettimeofday(2), ctime(3), getclock(3), setclock(3)
Documents: Command and Shell User’s Guide