Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
STRFTIME(3)		     Library Functions Manual		     STRFTIME(3)

NAME
     strftime -- format date and time

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <time.h>

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

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

DESCRIPTION
     The  strftime()  function	formats  the  information  from timeptr into the
     buffer buf according to the string pointed  to  by  format.   The	function
     strftime_l()  does  the  same  as	strftime()  but takes an explicit locale
     rather than using the current locale.

     The format string consists of zero or more  conversion  specifications  and
     ordinary  characters.  All ordinary characters are copied directly into the
     buffer.  A conversion specification consists of a percent	sign  "`%'"  and
     one other character.

     No  more than maxsize characters will be placed into the array.  If the to-
     tal number of resulting characters, including the terminating  NUL  charac-
     ter,  is not more than maxsize, strftime() returns the number of characters
     in the array, not counting the terminating NUL.   Otherwise,  zero  is  re-
     turned and the buffer contents are indeterminate.

     The  conversion  specifications are copied to the buffer after expansion as
     follows:

     %A    is replaced by national representation of the full weekday name.

     %a    is replaced by national representation  of  the  abbreviated  weekday
	   name.

     %B    is replaced by national representation of the full month name.

     %b    is replaced by national representation of the abbreviated month name.

     %C    is replaced by (year / 100) as decimal number; single digits are pre-
	   ceded by a zero.

     %c    is replaced by national representation of time and date.

     %D    is equivalent to "%m/%d/%y".

     %d    is replaced by the day of the month as a decimal number (01-31).

     %E* %O*
	   POSIX  locale  extensions.  The sequences %Ec %EC %Ex %EX %Ey %EY %Od
	   %Oe %OH %OI %Om %OM %OS %Ou %OU %OV %Ow %OW %Oy are supposed to  pro-
	   vide alternate representations.

	   Additionally  %OB  implemented  to represent alternative months names
	   (used standalone, without day mentioned).

     %e    is replaced by the day of the month as a decimal number (1-31);  sin-
	   gle digits are preceded by a blank.

     %F    is equivalent to "%Y-%m-%d".

     %G    is replaced by a year as a decimal number with century.  This year is
	   the	one  that  contains  the greater part of the week (Monday as the
	   first day of the week).

     %g    is replaced by the same year as in "%G",  but  as  a  decimal  number
	   without century (00-99).

     %H    is replaced by the hour (24-hour clock) as a decimal number (00-23).

     %h    the same as %b.

     %I    is replaced by the hour (12-hour clock) as a decimal number (01-12).

     %j    is replaced by the day of the year as a decimal number (001-366).

     %k    is  replaced  by the hour (24-hour clock) as a decimal number (0-23);
	   single digits are preceded by a blank.

     %l    is replaced by the hour (12-hour clock) as a decimal  number  (1-12);
	   single digits are preceded by a blank.

     %M    is replaced by the minute as a decimal number (00-59).

     %m    is replaced by the month as a decimal number (01-12).

     %n    is replaced by a newline.

     %O*   the same as %E*.

     %p    is  replaced  by  national  representation  of either "ante meridiem"
	   (a.m.)  or "post meridiem" (p.m.)  as appropriate.

     %R    is equivalent to "%H:%M".

     %r    is equivalent to "%I:%M:%S %p".

     %S    is replaced by the second as a decimal number (00-60).

     %s    is replaced by the number of seconds since the Epoch,  UTC  (see  mk-
	   time(3)).

     %T    is equivalent to "%H:%M:%S".

     %t    is replaced by a tab.

     %U    is  replaced  by the week number of the year (Sunday as the first day
	   of the week) as a decimal number (00-53).

     %u    is replaced by the weekday (Monday as the first day of the week) as a
	   decimal number (1-7).

     %V    is replaced by the week number 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 is	week  1;
	   otherwise it is the last week of the previous year, and the next week
	   is week 1.

     %v    is equivalent to "%e-%b-%Y".

     %W    is  replaced  by the week number of the year (Monday as the first day
	   of the week) as a decimal number (00-53).

     %w    is replaced by the weekday (Sunday as the first day of the week) as a
	   decimal number (0-6).

     %X    is replaced by national representation of the time.

     %x    is replaced by national representation of the date.

     %Y    is replaced by the year with century as a decimal number.

     %y    is replaced by the year without century as a decimal number (00-99).

     %Z    is replaced by the time zone name.

     %z    is replaced by the time zone offset from UTC;  a  leading  plus  sign
	   stands  for east of UTC, a minus sign for west of UTC, hours and min-
	   utes follow with two digits each and no delimiter between them  (com-
	   mon form for RFC 822 date headers).

     %+    is replaced by national representation of the date and time (the for-
	   mat is similar to that produced by date(1)).

     %-*   GNU	libc extension.  Do not do any padding when performing numerical
	   outputs.

     %_*   GNU libc extension.	Explicitly specify space for padding.

     %0*   GNU libc extension.	Explicitly specify zero for padding.

     %%    is replaced by `%'.

SEE ALSO
     date(1), printf(1), ctime(3), printf(3), strptime(3), wcsftime(3)

STANDARDS
     The strftime() function conforms to ISO/IEC 9899:1990 ("ISO  C90")  with  a
     lot  of  extensions  including  `%C',  `%D', `%E*', `%e', `%G', `%g', `%h',
     `%k', `%l', `%n', `%O*', `%R', `%r', `%s', `%T', `%t',  `%u',  `%V',  `%z',
     `%+'.

     The  peculiar  week  number  and year in the replacements of `%G', `%g' and
     `%V' are defined in ISO 8601.  The strftime_l() function conforms	to  IEEE
     Std 1003.1-2008 ("POSIX.1").

BUGS
     There is no conversion specification for the phase of the moon.

     The  strftime()  function does not correctly handle multibyte characters in
     the format argument.

FreeBSD ports 15.quarterly	  June 25, 2012 		     STRFTIME(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=strftime&sektion=3&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help