xenial (1) date.1posix.gz

Provided by: manpages-posix_2013a-1_all bug

PROLOG

       This  manual  page  is part of the POSIX Programmer's Manual.  The Linux implementation of this interface
       may differ (consult the corresponding Linux manual page for details of Linux behavior), or the  interface
       may not be implemented on Linux.

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  POSIX.1‐2008,  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 POSIX.1‐2008, 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 POSIX.1‐2008, 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 POSIX.1‐2008, 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 this standard 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 POSIX.1‐2008, 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> characters 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:2004 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 Base Definitions volume of POSIX.1‐2008, Section 7.3.5, LC_TIME, Chapter  8,  Environment  Variables,
       Section 12.2, Utility Syntax Guidelines

       The System Interfaces volume of POSIX.1‐2008, fprintf(), strftime()

       Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2013 Edition,
       Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open  Group  Base
       Specifications  Issue 7, Copyright (C) 2013 by the Institute of Electrical and Electronics Engineers, Inc
       and The Open Group.  (This is POSIX.1-2008 with the 2013 Technical Corrigendum 1 applied.) 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.unix.org/online.html .

       Any  typographical  or formatting errors that appear in this page are most likely to have been introduced
       during  the  conversion  of  the  source  files  to  man  page  format.  To  report  such   errors,   see
       https://www.kernel.org/doc/man-pages/reporting_bugs.html .