cftime(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

cftime(3c)

strftime(3C)             Standard C Library Functions             strftime(3C)

NAME
       strftime,  strftime_l,  cftime,  ascftime  -  convert  date and time to
       string

SYNOPSIS
       #include <time.h>

       size_t strftime(char *restrict s, size_t maxsize,
            const char *restrict format,
            const struct tm *restrict timeptr);


       size_t strftime_l(char *restrict s, size_t maxsize,
            const char *restrict format,
            const struct tm *restrict timeptr,
            locale_t locale);


       int cftime(char *s, char *format, const time_t *clock);


       int ascftime(char *s, const char *format,
            const struct tm *timeptr);

DESCRIPTION
       The strftime(), ascftime(), and cftime() functions place bytes into the
       array pointed to by s as controlled by the string pointed to by format.
       The format string consists of zero or  more  conversion  specifications
       and  ordinary  characters. A conversion specification consists of a '%'
       (percent) character, an optional  flag  character,  an  optional  field
       width,  and one or two terminating conversion characters that determine
       the conversion specification's behavior. All ordinary  characters  (in‐
       cluding  the terminating null byte) are copied unchanged into the array
       pointed to by s. If copying takes place between objects  that  overlap,
       the  behavior  is undefined. For strftime(), no more than maxsize bytes
       are placed into the array.


       If format is NULL, then the locale's default format is used. For  strf‐
       time()  the  default  format  is the same as %c; for cftime() and ascf‐
       time() the default format is the same as %C.  cftime()  and  ascftime()
       first  try  to use the value of the environment variable CFTIME, and if
       that is undefined or empty, the default format is used.


       Each conversion specification is replaced by appropriate characters  as
       described  in the following list. The appropriate characters are deter‐
       mined by the LC_TIME category of current locale or of locale  specified
       by  locale,  and by the values contained in the structure pointed to by
       timeptr for strftime(), strftime_l(), and ascftime(), and by  the  time
       represented  by  clock for cftime(). Supported optional flag characters
       and optional field width are described at the end of the section.


       Each conversion specification is introduced by the '%' character  after
       which the following appear in sequence:

       An optional flag


           0 (zero character)

               Specifies  that  the character used as the padding character is
               '0', even in cases where the conversion specification character
               used with is specified with in the "Conversion Specifiers" sub‐
               section such that digits are preceded by a  space  or  a  blank
               character.


           + (plus-sign character)


               Default and other standards prior to SUSv4:


                   This  character  is not recognized as an optional flag. In‐
                   stead, this character is recognized as a conversion  speci‐
                   fier. See "Conversion Specifiers" section.



               SUSv4 conforming:


                   Specifies  that the character used as the padding character
                   is '0', and that if and only if the  field  being  produced
                   consumes  more than four bytes to represent a year (for %F,
                   %G, or %Y) or more than two bytes to represent the year di‐
                   vided by 100 (for %C) then a leading plus-sign character is
                   included if the year being processed  is  greater  than  or
                   equal  to  zero  or a leading minus-sign character ('-') is
                   included if the year is less than zero.




           #

               If applicable, convert the case of the alphabetic characters to
               the other case, i.e., uppercase to lowercase  or  lowercase  to
               uppercase,  while  trying to preserve the first so-called title
               case character in the conversion to uppercase.


           - (dash)

               Do not pad anything for numeric values.


           ^

               If applicable,  convert  lowercase  characters  into  uppercase
               characters.


           _ (underscore)

               Pad left with space (0x20) characters for numeric values.



       An optional minimum field width

           If  the  converted  value  has  fewer  bytes than the minimum field
           width, the output will be padded on the left with the padding char‐
           acter.

           In SUSv4 conforming application, a leading '+' or '-' sign  is  in‐
           cluded  when counting bytes for the converted values, and a padding
           is done after any leading '+' or '-' sign.


       An optional E or O modifier

           Subsection "Modified Conversion Specifications" describes about how
           those modifiers work.


       A terminating conversion specifier

           The specifier indicates the type of conversion to be applied.  Sub‐
           section "Conversion Specifiers" describes about the specifiers sup‐
           ported.



       The  results  are unspecified if more than one flag character is speci‐
       fied, a flag character is specified without a minimum  field  width;  a
       minimum  field  width is specified without a flag character; a modifier
       is specified with a flag or with a minimum field width; or if a minimum
       field width is specified for any conversion specifier other than C,  F,
       G, or Y.


       All  ordinary  characters (including the terminating NUL character) are
       copied unchanged into the array. If copying takes place between objects
       that overlap, the behavior is undefined. No more than maxsize bytes are
       placed into the array. Each conversion specifier is replaced by  appro‐
       priate  characters  as described in the following list. The appropriate
       characters are determined using the LC_TIME category of the current lo‐
       cale or locale specified by locale and by the values of  zero  or  more
       members  of  the  broken-down  time structure pointed to by timeptr, as
       specified in brackets in the description. If any of the specified  val‐
       ues  are  outside  the normal range, the characters stored are unspeci‐
       fied.

   Conversion Specifiers
       The following conversion specifiers are supported:

       +
            Default and other standards prior to SUSv4

                Locale's date and time representation as produced by  date(1).
                Plus sign is recognized as a conversion specifier.


            SUSv4 conforming

                This  character  is  not recognized as a conversion specifier.
                Instead, this character is recognized as an optional flag. See
                "Description" section.



       a    Locale's abbreviated weekday name.


       A    Locale's full weekday name.


       b    Locale's abbreviated month name.


       B    Locale's full month name.


   Standard conforming
       c    Locale's appropriate date and time represented as:


              %a %b %e %H:%M:%S %Y

            This is standard-conforming behavior for standards first supported
            by Solaris 2.4 through Oracle Solaris 11.4.


   Default
       c    Locale's appropriate date and time represented as:


              %a %b %d %H:%M:%S %Y

            This is the default behavior as well as standard-conforming behav‐
            ior for standards first supported by  releases  prior  to  Solaris
            2.4. See standards(7).


   SUSv4 conforming
       C    Century  number (the year divided by 100 and truncated to an inte‐
            ger as a decimal number [01,99]).

            If a minimum field width is not specified, the number  of  charac‐
            ters  placed  into the array pointed to by s will be the number of
            digits in the year divided by 100 or two, whichever is greater. If
            a minimum field width  is  specified,  the  number  of  characters
            placed into the array pointed to by s will be the number of digits
            in  the  year divided by 100 or the minimum field width, whichever
            is greater.


   Other standard conforming
       C    Century number (the year divided by 100 and truncated to an  inte‐
            ger as a decimal number [01,99]).

            This is the default behavior as well as standard-conforming behav‐
            ior  for standards first supported by releases prior to Oracle So‐
            laris 11.


   Default
       C    Locale's date and time representation as produced by date(1).

            This is the default behavior as well as standard-conforming behav‐
            ior for standards first supported by releases prior to Oracle  So‐
            laris 11.4.


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


       D    Equivalent to %m/%d/%y.


       e    Day  of  month  as a decimal number [1,31]; a single digit is pre‐
            ceded by a space.


   SUSv4 conforming
       F    Equivalent to %+4Y-%m-%d if no flag and no minimum field width are
            specified.

            If a minimum field width of x is specified, the year is output  as
            if  by  the  Y  specifier (described below) with whatever flag was
            given and a minimum field width of x-6. If x is less than  6,  the
            behavior is as if x equals 6.

            If  the minimum field width is specified to be 10, and the year is
            four digits long, then the output string produced will  match  the
            ISO  8601:2000 standard subclause 4.1.2.2 complete representation,
            extended format date representation of a specific day.

            If a + flag is specified, a minimum field width of x is specified,
            and x-7 bytes are sufficient to hold the digits of the  year  (not
            including  any  needed sign character), then the output will match
            the ISO 8601:2000 standard subclause 4.1.2.4 complete  representa‐
            tion, expanded format date representation of a specific day.


   Default and other standards
       F    Equivalent  to  %Y-%m-%d (the ISO 8601:2000 standard + date in ex‐
            tended format).

            This is the default behavior as well as standard-conforming behav‐
            ior for standards first supported by releases prior to Oracle  So‐
            laris 11.4.


       g    Last 2 digits of the week-based year as a decimal number [00,99].


   SUSv4 conforming
       G    Week-based year as a decimal number (for example, 1977).

            If  a  minimum  field width is specified, the number of characters
            placed into the array pointed to by s will be the number of digits
            and leading sign characters (if any) in the year, or  the  minimum
            field width, whichever is greater.


   Default and other standards
       G    Week-based year, including the century [0000,9999].

            This is the default behavior as well as standard-conforming behav‐
            ior  for standards first supported by releases prior to Oracle So‐
            laris 11.4.


       h    Equivalent to 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 number of year as a decimal number [001,366].


       k    Hour (24-hour clock) as a decimal number [0,23]; single  digit  is
            preceded by a space.


       l    Hour  (12-hour  clock) as a decimal number [1,12]; single digit is
            preceded by a space.


       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 a.m. or p.m.


       r    Appropriate time representation in 12-hour clock format  with  %p.
            In the POSIX locale this is equivalent to %I:%M:%S  %p.


       P    Locale's equivalent of either a.m. or p.m. in lowercase if applic‐
            able for the current locale, or in locale represented by locale in
            strftime_l().


       R    Time in 24-hour notation as %H:%M.


       s    The  number  of  seconds since the Epoch (00:00:00 UTC, January 1,
            1970).


       S    Second as a decimal number [00,60]; the range of values is [00,60]
            rather than [00,59] to allow for the occasional leap second.


       t    A TAB.


       T    Time as %H:%M:%S.


       u    Weekday as a decimal number [1,7], with 1 representing Monday. See
            HISTORY below.


       U    Week number of year as a decimal number [00,53]. The first  Sunday
            of January is the first day of week 1; days in the new year before
            this are in week 0.


       V    The  ISO  8601 week number as a decimal number [01,53]. In the ISO
            8601 week-based system, weeks begin on a Monday and week 1 of  the
            year  is  the  week  that  includes both January 4th and the first
            Thursday of the year. If the first Monday of January is  the  2nd,
            3rd,  or  4th, the preceding days are part of the last week of the
            preceding year. See HISTORY below.


       w    Weekday as a decimal number [0,6], with 0 representing Sunday.


       W    Week number of year as a decimal number [00,53],  with  Monday  as
            the  first day of week 1. The first Monday of January is the first
            day of week 1; days in the new year before this are in week 0.


       x    Locale's appropriate date representation.


       X    Locale's appropriate time representation.


   SUSv4 conforming
       Y    Year as a decimal number (for example 1997).

            If a minimum field width is specified, the  number  of  characters
            placed into the array pointed to by s will be the number of digits
            and  leading  sign characters (if any) in the year, or the minimum
            field width, whichever is greater.


   Default and other standards
       Y    Year as a decimal number (for example 1997). This is  the  default
            behavior  as  well  as  standard-conforming behavior for standards
            first supported by releases prior to Oracle Solaris 11.4.


       z    Replaced by offset from UTC in ISO 8601:2004 standard basic format
            (+hhmm or -hhmm), or by no characters if no time  zone  is  deter‐
            minable.  For example, "-0430" means 4 hours 30 minutes behind UTC
            (west of Greenwich). If tm_isdst is negative no characters are re‐
            turned.


       Z    Time zone name or abbreviation, or no bytes if no time zone infor‐
            mation exists.


       %    Replaced by %.



       If a conversion specification does not correspond to any of  the  above
       or  to  any of the modified conversion specifications listed below, the
       behavior is undefined and 0 is returned.


       The difference between %U and %W (and also between modified  conversion
       specifications  %OU  and %OW) lies in which day is counted as the first
       of the week. Week number 1 is the first week in January starting with a
       Sunday for %U or a Monday for %W. Week number 0 contains those days be‐
       fore the first Sunday or Monday in January for %U and %W, respectively.

   Modified Conversion Specifications
       Some conversion specifications can be modified by the E and O modifiers
       to indicate that an alternate format or specification  should  be  used
       rather than the one normally used by the unmodified conversion specifi‐
       cation.  If the alternate format or specification does not exist in the
       current locale, the behavior will be as if the unmodified specification
       were used.

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


       %EC    Name of the base year (period) in the locale's alternate  repre‐
              sentation.


       %Eg    Offset  from %EC of the week-based year in the locale's alterna‐
              tive representation.


       %EG    Full alternative representation of the week-based year.


       %Ex    Locale's alternate date representation.


       %EX    Locale's alternate time representation.


       %Ey    Offset from %EC (year only) in the locale's alternate  represen‐
              tation.


       %EY    Full alternate year representation.


       %OB    Locale's  full  month  name using the locale's alternate numeric
              symbols if applicable.


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


       %Oe    Same as %Od.


       %Og    Week-based year (offset from %C) in the locale's alternate  rep‐
              resentation and using the locale's alternate numeric symbols.


       %OH    Hour  (24-hour  clock) using the locale's alternate numeric sym‐
              bols.


       %OI    Hour (12-hour clock) using the locale's alternate  numeric  sym‐
              bols.


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


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


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


       %Ou    Weekday as a number in the locale's alternate numeric symbols.


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


       %OV    Week number of the year (Monday as the first day of the week  as
              specified  in  the description for %V) using the locale's alter‐
              nate numeric symbols.


       %Ow    Number of the weekday (Sunday=0) using  the  locale's  alternate
              numeric symbols.


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


       %Oy    Year (offset from %C) in the locale's  alternate  representation
              and using the locale's alternate numeric symbols.


   Selecting the Output Language
       By  default,  the output of strftime(), cftime(), and ascftime() appear
       in U.S. English. The user can request that the  output  of  strftime(),
       cftime(),  or  ascftime()  be  in  a  specific  language by setting the
       LC_TIME category using setlocale().


       The strftime_l() function is equivalent to the strftime() function, ex‐
       cept that the locale data used is from the locale  represented  by  lo‐
       cale.


       The behavior is undefined if the locale argument to strftime_l() is the
       special  locale object LC_GLOBAL_LOCALE or is not a valid locale object
       handle.

   Time Zone
       Local time zone information is used as though tzset(3C) were called.

RETURN VALUES
       These functions return the  number  of  bytes  placed  into  the  array
       pointed  to  by s, not including the terminating null character. If the
       total number of resulting bytes including the terminating null  charac‐
       ter  is more than maxsize, strftime() and strftime_l() return 0 and the
       contents of the array are indeterminate.

EXAMPLES
       Example 1 An example of the strftime() function.



       The following example illustrates the use of  strftime()  to  format  a
       date  and  time in the ISO 8601:2019 extended format. It shows what the
       string in str would look like if the structure pointed to by tmptr con‐
       tains  the  values  corresponding  to  Thursday,  August  28,  1986  at
       12:44:36.


         strftime(str, strsize, "%FT%T", tmptr)




       This results in str containing "1986-08-28T12:44:36".

       Example 2 Locale appropriate date and time



       Generate the long form date and time represented by the variable now in
       the  current  locale appropriate order. Note that even in two different
       English locales this results in a string of different lengths and field
       order:


         strftime(str, strsize, "%c", now)


         en_US: "January 13, 2022 at  1:38:49 PM GMT"
         en_GB: "13 January 2022 at 13:38:49 GMT"

       Example 3 Using flag and field width at conversion specification.



       Assuming the data structure pointed to by tmptr has the  values  corre‐
       sponding to Sunday, December 5, 2009 at 12:00:00 and the current locale
       is POSIX, with the following:


         strftime(str, strsize, "Day:%#10A", tmptr);




       The  result  in str would be "Day: SUNDAY" where Sunday is converted to
       uppercase while preserving the initial title case  character  and  with
       four space (0x20) characters padded at left.

USAGE
       Use of the strftime() or strftime_l() functions is strongly recommended
       over the older ascftime() or cftime() functions, as the older functions
       cannot  check if more data is being written than will fit in the output
       buffer, and the use of the CFTIME environment variable may lead to  un‐
       expected or overlength output being generated.

ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE VALUE _ CSIEnabled _ Interface StabilityCommitted _ MT-LevelMT-
       Safe _ StandardSee below.



       For strftime() and strftime_l(), see standards(7).

SEE ALSO
       date(1), ctime(3C), duplocale(3C), freelocale(3C),  mktime(3C),  newlo‐
       cale(3C),  setlocale(3C), strptime(3C), tzset(3C), uselocale(3C), zone‐
       info(5), attributes(7), environ(7), standards(7)


       Managing System Locales in Internationalizing and  Localizing  Applica‐
       tions in Oracle Solaris

HISTORY
       The  strftime_l()  function  was added to Oracle Solaris in the Solaris
       11.4.0 release.


       The ascftime(), cftime(), and strftime() functions have  been  included
       in all Sun and Oracle releases of Solaris.


       The conversion specifications for %C, %F, %G, and %Y were modified, and
       optional  flag  character '+' was added in Oracle Solaris 11.4, to con‐
       form to Single UNIX Specifications version 4 (SUSv4) or The Open  Group
       Base Specifications Issue 7 (XPG7).


       The conversion specifications for %+, %P, %s, %OB, and %OV and also op‐
       tional  flag  characters and optional field width were added in the So‐
       laris 11 and OpenSolaris releases for a better compatibility with other
       operating systems. The current form of %OV is  also  specified  in  the
       Single UNIX Specification, Version 2 (SUSv2).


       The  conversion  specification  for %u was changed in the Solaris 8 re‐
       lease. This change was based on the XPG4 specification.


       The conversion specification for %V was changed in the  Solaris  7  re‐
       lease.  This change was based on the public review draft of the ISO C99
       standard at that time. Previously, the specification stated that if the
       week containing 1 January had fewer than four days in the new year,  it
       became  week  53  of  the previous year. The ISO C99 standard committee
       subsequently recognized that that specification had been incorrect.


       The conversion specifications for %g, %G, %Eg, %EG, and %Og were  added
       in  the  Solaris  7 release. This change was based on the public review
       draft of the ISO C99 standard at that time.

Oracle Solaris 11.4               25 Nov 2024                     strftime(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3