The date utility writes the date and time to standard output or attempts to set the system date and time. By default, the current date and time will be written.
Specifications of native language translations of month and weekday names are supported. The month and weekday names used for a language are based on the locale specified by the environment variable LC_TIME; see environ(5).
%a %b %e %T %Z %Y
Fri Dec 23 10:10:42 EST 1988
The following options are supported:
Slowly adjust the time by sss.fff seconds (fff represents fractions of a second). This adjustment can be positive or negative. The system's clock will be sped up or slowed down until it has drifted by the number of seconds specified. Only the super-user may adjust the time.
Display (or set) the date in Greenwich Mean Time (GMT-universal time), bypassing the normal conversion to (or from) local time.
The following operands are supported:
If the argument begins with +, the output of date is the result of passing format and the current time to strftime(). date uses the conversion specifications listed on the strftime(3C) manual page, with the conversion specification for %C determined by whether /usr/bin/date or /usr/xpg4/bin/date is used:
Locale's date and time representation. This is the default output for date.
Century (a year divided by 100 and truncated to an integer) as a decimal number [00-99].
The string is always terminated with a NEWLINE. An argument containing blanks must be quoted; see the EXAMPLES section.
Day number in the month
Hour number (24 hour system)
Century minus one
Last 2 digits of the year number
example% date 10080045
sets the date to Oct 8, 12:45 a.m. The current year is the default because no year is supplied. The system operates in GMT. date takes care of the conversion to and from local standard and daylight time. Only the super-user may change the date. After successfully setting the date and time, date displays the new date according to the default format. The date command uses TZ to determine the correct time zone information; see environ(5).
example% date '+DATE: %m/%d/%y%nTIME:%H:%M:%S'
DATE: 08/01/76 TIME: 14:45:05
example# date 1234.56
sets the current time to 12:34:56.
See environ(5) for descriptions of the following environment variables that affect the execution of date: LC_CTYPE, LC_TIME, LC_MESSAGES, and NLSPATH.
Determine the timezone in which the time and date are written, unless the -u option is specified. If the TZ variable is not set and the -u is not specified, the system default timezone is used.
See attributes(5) for descriptions of the following attributes:
You are not the super-user and you tried to change the date.
The date set is syntactically incorrect.
If you attempt to set the current date to one of the dates that the standard and alternate time zones change (for example, the date that daylight time is starting or ending), and you attempt to set the time to a time in the interval between the end of standard time and the beginning of the alternate time (or the end of the alternate time and the beginning of standard time), the results are unpredictable.
Using the date command from within windowing environments to change the date can lead to unpredictable results and is unsafe. It may also be unsafe in the multi-user mode, that is, outside of a windowing system, if the date is changed rapidly back and forth. The recommended method of changing the date is 'date -a'.