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

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
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
	      locale.

       %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
       extensions.   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://www.freebsd.org/cgi/man.cgi?query=strftime&sektion=3&manpath=Red+Hat+Linux%2fi386+9>

home | help