File: *manpages*,  Node: strftime,  Up: (dir)



STRFTIME(3)         Linux Programmer's Manual         STRFTIME(3)

NAME
       strftime - format date and time

SYNOPSIS
       #include <time.h>

       size_t strftime(char *s, size_t max, const char *format,
                           const struct tm *tm);

DESCRIPTION
       The  strftime()  function  formats the broken-down time tm
       according to the format specification  format  and  places
       the result in the character array s of size max.

       Ordinary characters placed in the format string are copied
       to s without conversion.  Conversion specifiers are intro
       duced  by  a  `%' character, and are replaced in s as fol
       lows:

       %a     The abbreviated weekday name according to the  cur
              rent locale.

       %A     The  full  weekday  name  according  to the current
              locale.

       %b     The abbreviated month name according to the current
              locale.

       %B     The  full  month  name  according  to  the  current
              locale.

       %c     The preferred date and time representation for  the
              current locale.

       %C     The  century  number (the year divided by  100  and
              truncated  to  an integer).

       %d     The day of the month as a decimal number (range  01
              to 31).

       %H     The  hour as a decimal number using a 24-hour clock
              (range 00 to 23).

       %I     The hour as a decimal number using a 12-hour  clock
              (range 01 to 12).

       %j     The  day of the year as a decimal number (range 001
              to 366).

       %m     The month as a decimal number (range 01 to 12).

       %M     The minute as a decimal number.

       %p     Either `am' or `pm' according  to  the  given  time

GNU                        July 2, 1993                         1

STRFTIME(3)         Linux Programmer's Manual         STRFTIME(3)

              value, or the corresponding strings for the current
              locale.

       %S     The second as a decimal number.

       %U     The week number of the current year  as  a  decimal
              number, starting with the first Sunday as the first
              day of the first week.

       %W     The week number of the current year  as  a  decimal
              number, starting with the first Monday as the first
              day of the first week.

       %w     The day of the week as a decimal, Sunday being 0.

       %x     The preferred date representation for  the  current
              locale without the time.

       %X     The  preferred  time representation for the current
              locale without the date.

       %y     The year as a  decimal  number  without  a  century
              (range 00 to 99).

       %Y     The year as a decimal number including the century.

       %Z     The time zone or name or abbreviation.

       %%     A literal `%' character.

       The broken-down time structure tm is defined  in  <time.h>
       as follows:

              struct tm
              {
                      int     tm_sec;         /* seconds */
                      int     tm_min;         /* minutes */
                      int     tm_hour;        /* hours */
                      int     tm_mday;        /* day of the month */
                      int     tm_mon;         /* month */
                      int     tm_year;        /* year */
                      int     tm_wday;        /* day of the week */
                      int     tm_yday;        /* day in the year */
                      int     tm_isdst;       /* daylight saving time */
              };

       The members of the tm structure are:

       tm_sec The number of seconds after the minute, normally in
              the range 0 to 59, but can be up to 61 to allow for
              leap seconds.

       tm_min The  number of minutes after the hour, in the range
              0 to 59.

GNU                        July 2, 1993                         2

STRFTIME(3)         Linux Programmer's Manual         STRFTIME(3)

       tm_hour
              The number of hours past midnight, in the  range  0
              to 23.

       tm_mday
              The day of the month, in the range 1 to 31.

       tm_mon The  number of months since January, in the range 0
              to 11.

       tm_year
              The number of years since 1900.

       tm_wday
              The number of days since Sunday, in the range 0  to
              6.

       tm_yday
              The  number of days since January 1, in the range 0
              to 365.

       tm_isdst
              A flag that indicates whether daylight saving  time
              is  in  effect at the time described.  The value is
              positive if daylight saving time is in effect, zero
              if  it  is  not, and negative if the information is
              not available.

RETURN VALUE
       The strftime() function returns the number  of  characters
       placed  in the array s, not including the terminating NULL
       character, provided the string, including the  terminating
       NULL,  fits.  Otherwise, it returns 0, and the contents of
       the array is undefined.  (Thus at least since libc  4.4.4;
       very  old  versions  of  libc,  such  as libc 4.4.1, would
       return max if the array was too small.)

       Note that the return value 0 does not necessarily indicate
       an  error; for example, in many locales %p yields an empty
       string.

CONFORMING TO
       ANSI C, SVID 3, POSIX, BSD 4.3, ISO 9899

SEE ALSO
       date(1), time(2), ctime(3), setlocale(3), sprintf(3)

GNU                        July 2, 1993                         3

