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

FreeBSD Manual Pages

  
 
  

home | help
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 introduced by a  `%'  character,
       and are replaced	in s as	follows:

       %a     The abbreviated weekday name according to	the current 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 lo-
	      cale.

       %C     The century number (year/100) as a 2-digit integer. (SU)

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

       %D     Equivalent to %m/%d/%y. (Yecch - for Americans only.   Americans
	      should  note  that in other countries %d/%m/%y is	rather common.
	      This means that in international context this format is  ambigu-
	      ous and should not be used.) (SU)

       %e     Like %d, the day of the month as a decimal number, but a leading
	      zero is replaced by a space. (SU)

       %E     Modifier:	use alternative	format,	see below. (SU)

       %F     Equivalent to %Y-%m-%d (the ISO 8601 date	format). (C99)

       %G     The ISO 8601 year	with century as	a decimal number.  The 4-digit
	      year  corresponding  to  the ISO week number (see	%V).  This has
	      the same format and value	as %y, except that  if	the  ISO  week
	      number  belongs  to the previous or next year, that year is used
	      instead. (TZ)

       %g     Like %G, but without century, i.e., with a 2-digit year (00-99).
	      (TZ)

       %h     Equivalent to %b.	(SU)

       %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).

       %k     The  hour	 (24-hour  clock) as a decimal number (range 0 to 23);
	      single digits are	preceded by a blank. (See also %H.) (TZ)

       %l     The hour (12-hour	clock) as a decimal number (range  1  to  12);
	      single digits are	preceded by a blank. (See also %I.) (TZ)

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

       %M     The minute as a decimal number (range 00 to 59).

       %n     A	newline	character. (SU)

       %O     Modifier:	use alternative	format,	see below. (SU)

       %p     Either  `AM'  or	`PM' according to the given time value,	or the
	      corresponding strings for	the current locale.  Noon  is  treated
	      as `pm' and midnight as `am'.

       %P     Like %p but in lowercase:	`am' or	`pm' or	a corresponding	string
	      for the current locale. (GNU)

       %r     The time in a.m. or p.m. notation.  In the POSIX locale this  is
	      equivalent to `%I:%M:%S %p'. (SU)

       %R     The time in 24-hour notation (%H:%M). (SU) For a version includ-
	      ing the seconds, see %T below.

       %s     The number of seconds since the Epoch,  i.e.,  since  1970-01-01
	      00:00:00 UTC. (TZ)

       %S     The second as a decimal number (range 00 to 61).

       %t     A	tab character. (SU)

       %T     The time in 24-hour notation (%H:%M:%S). (SU)

       %u     The  day of the week as a	decimal, range 1 to 7, Monday being 1.
	      See also %w. (SU)

       %U     The week number of the current year as a decimal	number,	 range
	      00  to  53,  starting  with the first Sunday as the first	day of
	      week 01. See also	%V and %W.

       %V     The ISO 8601:1988	week number of the current year	as  a  decimal
	      number,  range 01	to 53, where week 1 is the first week that has
	      at least 4 days in the current year,  and	 with  Monday  as  the
	      first day	of the week. See also %U and %W. (SU)

       %w     The  day of the week as a	decimal, range 0 to 6, Sunday being 0.
	      See also %u.

       %W     The week number of the current year as a decimal	number,	 range
	      00  to  53,  starting  with the first Monday as the first	day of
	      week 01.

       %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  as	 hour  offset  from  GMT.   Required  to  emit
	      RFC822-conformant	 dates	(using	"%a,  %d  %b %Y	%H:%M:%S %z").
	      (GNU)

       %Z     The time zone or name or abbreviation.

       %+     The date and time	in date(1) format. (TZ)

       %%     A	literal	`%' character.

       Some conversion specifiers can be modified by preceding them by	the  E
       or  O  modifier	to indicate that an alternative	format should be used.
       If the alternative format or specification does not exist for the  cur-
       rent  locale,  the  behaviour  will  be as if the unmodified conversion
       specification were used.	(SU) The Single	 Unix  Specification  mentions
       %Ec,  %EC,  %Ex,	%EX, %Ry, %EY, %Od, %Oe, %OH, %OI, %Om,	%OM, %OS, %Ou,
       %OU, %OV, %Ow, %OW, %Oy,	where the effect of the	O modifier is  to  use
       alternative  numeric  symbols  (say, roman numerals), and that of the E
       modifier	is to use a locale-dependent alternative representation.

       The broken-down time structure tm is defined  in	 _time.h_.   See  also
       ctime(3).

RETURN VALUE
       The  strftime() function	returns	the number of characters placed	in the
       array s,	not including the  terminating	NUL  character,	 provided  the
       string,	including the terminating NUL, 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.

ENVIRONMENT
       The environment variables TZ and	LC_TIME	are used.

CONFORMING TO
       ANSI  C,	SVID 3,	ISO 9899.  There are strict inclusions between the set
       of conversions given in ANSI C (unmarked), those	given  in  the	Single
       Unix Specification (marked SU), those given in Olson's timezone package
       (marked TZ), and	those given in glibc (marked GNU), except that	%+  is
       not  supported in glibc2. On the	other hand glibc2 has several more ex-
       tensions.  POSIX.1 only refers  to  ANSI	 C;  POSIX.2  describes	 under
       date(1)	several	 extensions that could apply to	strftime as well.  The
       %F conversion is	in C99 and POSIX 1003.1-2001.

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

GNU				  1999-03-29			   STRFTIME(3)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ENVIRONMENT | CONFORMING TO | SEE ALSO

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=strftime&sektion=3&manpath=Red+Hat+9>

home | help