Provided by: manpages-posix_2.16-1_all bug

NAME

       date - write the date and time

SYNOPSIS

       date [-u] [+format]

       date [-u] mmddhhmm[[cc]yy]

DESCRIPTION

       The  date  utility shall write the date and time to standard output  or attempt to set the
       system date and time.  By default, the current date and  time  shall  be  written.  If  an
       operand  beginning with '+' is specified, the output format of date shall be controlled by
       the conversion specifications and other text in the operand.

OPTIONS

       The date utility shall conform to the Base  Definitions  volume  of  IEEE Std 1003.1-2001,
       Section 12.2, Utility Syntax Guidelines.

       The following option shall be supported:

       -u     Perform operations as if the TZ environment variable was set to the string "UTC0" ,
              or its equivalent historical value of  "GMT0"  .  Otherwise,  date  shall  use  the
              timezone  indicated  by  the  TZ environment variable or the system default if that
              variable is unset or null.

OPERANDS

       The following operands shall be supported:

       +format
              When the format is specified, each conversion specifier shall be  replaced  in  the
              standard  output  by its corresponding value.  All other characters shall be copied
              to the output without change.   The  output  shall  always  be  terminated  with  a
              <newline>.

   Conversion Specifications
       %a     Locale's abbreviated weekday name.

       %A     Locale's full weekday name.

       %b     Locale's abbreviated month name.

       %B     Locale's full month name.

       %c     Locale's appropriate date and time representation.

       %C     Century  (a  year  divided  by 100 and truncated to an integer) as a decimal number
              [00,99].

       %d     Day of the month as a decimal number [01,31].

       %D     Date in the format mm/dd/yy.

       %e     Day of the month as a decimal number [1,31] in a two-digit field with leading space
              character fill.

       %h     A synonym for %b .

       %H     Hour (24-hour clock) as a decimal number [00,23].

       %I     Hour (12-hour clock) as a decimal number [01,12].

       %j     Day of the year as a decimal number [001,366].

       %m     Month as a decimal number [01,12].

       %M     Minute as a decimal number [00,59].

       %n     A <newline>.

       %p     Locale's equivalent of either AM or PM.

       %r     12-hour  clock  time  [01,12]  using  the AM/PM notation; in the POSIX locale, this
              shall be equivalent to %I : %M : %S %p .

       %S     Seconds as a decimal number [00,60].

       %t     A <tab>.

       %T     24-hour clock time [00,23] in the format HH:MM:SS.

       %u     Weekday as a decimal number [1,7] (1=Monday).

       %U     Week of the year (Sunday as the first day of the week) as a decimal number [00,53].
              All days in a new year preceding the first Sunday shall be considered to be in week
              0.

       %V     Week of the year (Monday as the first day of the week) as a decimal number [01,53].
              If  the  week  containing  January 1 has four or more days in the new year, then it
              shall be considered week 1; otherwise, it shall be the last week  of  the  previous
              year, and the next week shall be week 1.

       %w     Weekday as a decimal number [0,6] (0=Sunday).

       %W     Week of the year (Monday as the first day of the week) as a decimal number [00,53].
              All days in a new year preceding the first Monday shall be considered to be in week
              0.

       %x     Locale's appropriate date representation.

       %X     Locale's appropriate time representation.

       %y     Year within century [00,99].

       %Y     Year with century as a decimal number.

       %Z     Timezone name, or no characters if no timezone is determinable.

       %%     A percent sign character.

       See  the  Base  Definitions volume of IEEE Std 1003.1-2001, Section 7.3.5, LC_TIME for the
       conversion specifier values in the POSIX locale.

   Modified Conversion Specifications
       Some conversion specifiers can be modified by the E and O modifier characters to  indicate
       a  different  format  or specification as specified in the LC_TIME locale description (see
       the Base Definitions volume of  IEEE Std 1003.1-2001,  Section  7.3.5,  LC_TIME).  If  the
       corresponding   keyword  (see  era,  era_year,  era_d_fmt,  and  alt_digits  in  the  Base
       Definitions volume of IEEE Std 1003.1-2001, Section 7.3.5, LC_TIME) is  not  specified  or
       not  supported  for the current locale, the unmodified conversion specifier value shall be
       used.

       %Ec    Locale's alternative appropriate date and time representation.

       %EC    The name of the base year (period) in the locale's alternative representation.

       %Ex    Locale's alternative date representation.

       %EX    Locale's alternative time representation.

       %Ey    Offset from %EC (year only) in the locale's alternative representation.

       %EY    Full alternative year representation.

       %Od    Day of month using the locale's alternative numeric symbols.

       %Oe    Day of month using the locale's alternative numeric symbols.

       %OH    Hour (24-hour clock) using the locale's alternative numeric symbols.

       %OI    Hour (12-hour clock) using the locale's alternative numeric symbols.

       %Om    Month using the locale's alternative numeric symbols.

       %OM    Minutes using the locale's alternative numeric symbols.

       %OS    Seconds using the locale's alternative numeric symbols.

       %Ou    Weekday as a number in the locale's alternative representation (Monday = 1).

       %OU    Week number of the year (Sunday as the first day of the week)  using  the  locale's
              alternative numeric symbols.

       %OV    Week  number  of the year (Monday as the first day of the week, rules corresponding
              to %V ), using the locale's alternative numeric symbols.

       %Ow    Weekday as a number in the locale's alternative representation (Sunday = 0).

       %OW    Week number of the year (Monday as the first day of the week)  using  the  locale's
              alternative numeric symbols.

       %Oy    Year (offset from %C ) in alternative representation.

       mmddhhmm[[cc]yy]

              Attempt  to  set the system date and time from the value given in the operand. This
              is only possible if the user has appropriate privileges and the system permits  the
              setting  of the system date and time. The first mm is the month (number); dd is the
              day (number); hh is the hour (number, 24-hour system); the second mm is the  minute
              (number);  cc  is  the  century  and  is  the first two digits of the year (this is
              optional); yy is the last two digits of the year and is optional.   If  century  is
              not  specified,  then values in the range [69,99] shall refer to years 1969 to 1999
              inclusive, and values in the range [00,68]  shall  refer  to  years  2000  to  2068
              inclusive. The current year is the default if yy is omitted.

       Note:
              It is expected that in a future version of IEEE Std 1003.1-2001 the default century
              inferred from a 2-digit year  will  change.  (This  would  apply  to  all  commands
              accepting a 2-digit year as input.)

STDIN

       Not used.

INPUT FILES

       None.

ENVIRONMENT VARIABLES

       The following environment variables shall affect the execution of date:

       LANG   Provide  a  default  value for the internationalization variables that are unset or
              null. (See the  Base  Definitions  volume  of  IEEE Std 1003.1-2001,  Section  8.2,
              Internationalization Variables for the precedence of internationalization variables
              used to determine the values of locale categories.)

       LC_ALL If set to  a  non-empty  string  value,  override  the  values  of  all  the  other
              internationalization variables.

       LC_CTYPE
              Determine  the  locale for the interpretation of sequences of bytes of text data as
              characters (for  example,  single-byte  as  opposed  to  multi-byte  characters  in
              arguments).

       LC_MESSAGES
              Determine  the  locale  that  should  be  used to affect the format and contents of
              diagnostic messages written to standard error.

       LC_TIME
              Determine the format and contents of date and time strings written by date.

       NLSPATH
              Determine the location of message catalogs for the processing of LC_MESSAGES .

       TZ     Determine the timezone in which the time and date are written, unless the -u option
              is  specified.  If  the  TZ  variable  is unset or null and -u is not specified, an
              unspecified system default timezone is used.

ASYNCHRONOUS EVENTS

       Default.

STDOUT

       When no formatting operand  is  specified,  the  output  in  the  POSIX  locale  shall  be
       equivalent to specifying:

              date "+%a %b %e %H:%M:%S %Z %Y"

STDERR

       The standard error shall be used only for diagnostic messages.

OUTPUT FILES

       None.

EXTENDED DESCRIPTION

       None.

EXIT STATUS

       The following exit values shall be returned:

        0     The date was written successfully.

       >0     An error occurred.

CONSEQUENCES OF ERRORS

       Default.

       The following sections are informative.

APPLICATION USAGE

       Conversion specifiers are of unspecified format when not in the POSIX locale. Some of them
       can contain <newline>s in some locales, so it may be difficult to use the format shown  in
       standard output for parsing the output of date in those locales.

       The range of values for %S extends from 0 to 60 seconds to accommodate the occasional leap
       second.

       Although certain of the conversion specifiers in the POSIX locale (such as the name of the
       month) are shown with initial capital letters, this need not be the case in other locales.
       Programs using these fields may need to adjust the capitalization if the output  is  going
       to be used at the beginning of a sentence.

       The date string formatting capabilities are intended for use in Gregorian-style calendars,
       possibly  with  a  different  starting  year  (or  years).  The  %x  and   %c   conversion
       specifications,  however,  are  intended for local representation; these may be based on a
       different, non-Gregorian calendar.

       The  %C  conversion  specification  was  introduced  to  allow  a  fallback  for  the  %EC
       (alternative  year  format  base  year);  it  can  be  viewed  as  the base of the current
       subdivision in the Gregorian calendar. The  century  number  is  calculated  as  the  year
       divided  by  100  and  truncated  to an integer; it should not be confused with the use of
       ordinal numbers for centuries (for example, "twenty-first century".) Both the %Ey  and  %y
       can then be viewed as the offset from %EC and %C , respectively.

       The  E  and  O  modifiers  modify  the traditional conversion specifiers, so that they can
       always be used, even if the implementation (or the current locale) does  not  support  the
       modifier.

       The  E  modifier supports alternative date formats, such as the Japanese Emperor's Era, as
       long as these are based on the Gregorian calendar system. Extending  the  E  modifiers  to
       other  date elements may provide an implementation-defined extension capable of supporting
       other calendar systems, especially in combination with the O modifier.

       The O modifier supports time and date formats using  the  locale's  alternative  numerical
       symbols, such as Kanji or Hindi digits or ordinal number representation.

       Non-European  locales,  whether they use Latin digits in computational items or not, often
       have local forms of the digits for use in date formats. This is not totally  unknown  even
       in  Europe;  a  variant  of  dates  uses  Roman  numerals for the months: the third day of
       September 1991 would be written as 3.IX.1991. In Japan, Kanji digits  are  regularly  used
       for dates; in Arabic-speaking countries, Hindi digits are used. The %d , %e , %H , %I , %m
       , %S , %U , %w , %W , and %y conversion specifications always return  the  date  and  time
       field in Latin digits (that is, 0 to 9). The %O modifier was introduced to support the use
       for display purposes of non-Latin digits.  In  the  LC_TIME  category  in  localedef,  the
       optional  alt_digits  keyword  is  intended  for  this  purpose. As an example, assume the
       following (partial) localedef source:

              alt_digits  "";"I";"II";"III";"IV";"V";"VI";"VII";"VIII" \
                          "IX";"X";"XI";"XII"
              d_fmt       "%e.%Om.%Y"

       With the above date, the command:

              date "+%x"

       would yield 3.IX.1991. With the same d_fmt, but without the alt_digits, the command  would
       yield 3.9.1991.

EXAMPLES

        1. The  following  are input/output examples of date used at arbitrary times in the POSIX
           locale:

           $ date
           Tue Jun 26 09:58:10 PDT 1990

           $ date "+DATE: %m/%d/%y%nTIME: %H:%M:%S"
           DATE: 11/02/91
           TIME: 13:36:16

           $ date "+TIME: %r"
           TIME: 01:36:32 PM

        2. Examples for Denmark, where the default date and time format is %a %d %b %Y %T %Z :

           $ LANG=da_DK.iso_8859-1 date
           ons 02 okt 1991 15:03:32 CET

           $ LANG=da_DK.iso_8859-1 \
               date "+DATO: %A den %e. %B %Y%nKLOKKEN: %H:%M:%S"
           DATO: onsdag den 2. oktober 1991
           KLOKKEN: 15:03:56

        3. Examples for Germany, where the default date and time format is %a %d . %h . %Y  ,  %T
           %Z :

           $ LANG=De_DE.88591 date
           Mi 02.Okt.1991, 15:01:21 MEZ

           $ LANG=De_DE.88591 date "+DATUM: %A, %d. %B %Y%nZEIT: %H:%M:%S"
           DATUM: Mittwoch, 02. Oktober 1991
           ZEIT: 15:02:02

        4. Examples for France, where the default date and time format is %a %d %h %Y %Z %T :

           $ LANG=Fr_FR.88591 date
           Mer 02 oct 1991 MET 15:03:32

           $ LANG=Fr_FR.88591 date "+JOUR: %A %d %B %Y%nHEURE: %H:%M:%S"
           JOUR: Mercredi 02 octobre 1991
           HEURE: 15:03:56

RATIONALE

       Some  of  the  new  options for formatting are from the ISO C standard.  The -u option was
       introduced to allow portable access to Coordinated Universal Time (UTC). The string "GMT0"
       is  allowed  as  an equivalent TZ value to be compatible with all of the systems using the
       BSD implementation, where this option originated.

       The %e format conversion specification (adopted from System V) was added because the ISO C
       standard  conversion  specifications  did  not  provide  any way to produce the historical
       default date output during the first nine days of any month.

       There are two varieties of day and week numbering supported (in  addition  to  any  others
       created with the locale-dependent %E and %O modifier characters):

        * The  historical  variety  in which Sunday is the first day of the week and the weekdays
          preceding the first Sunday of the year are considered week 0. These are represented  by
          %w  and  %U  . A variant of this is %W , using Monday as the first day of the week, but
          still referring to week 0. This view of the  calendar  was  retained  because  so  many
          historical  applications  depend  on  it and the ISO C standard strftime() function, on
          which many date implementations are based, was defined in this way.

        * The international standard, based on the ISO 8601:2000 standard  where  Monday  is  the
          first  weekday and the algorithm for the first week number is more complex: If the week
          (Monday to Sunday) containing January 1 has four or more days in the new year, then  it
          is  week 1; otherwise, it is week 53 of the previous year, and the next week is week 1.
          These are represented by the new conversion specifications %u  and  %V  ,  added  as  a
          result of international comments.

FUTURE DIRECTIONS

       None.

SEE ALSO

       The System Interfaces volume of IEEE Std 1003.1-2001, printf(), strftime()

COPYRIGHT

       Portions  of  this  text  are  reprinted  and  reproduced in electronic form from IEEE Std
       1003.1, 2003 Edition, Standard for Information Technology  --  Portable  Operating  System
       Interface  (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003 by
       the Institute of Electrical and Electronics Engineers, Inc and  The  Open  Group.  In  the
       event  of  any  discrepancy  between this version and the original IEEE and The Open Group
       Standard, the original IEEE and The Open Group  Standard  is  the  referee  document.  The
       original Standard can be obtained online at http://www.opengroup.org/unix/online.html .