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

FreeBSD Manual Pages

  
 
  

home | help
std::strftime(3)	      C++ Standard Libary	      std::strftime(3)

NAME
       std::strftime - std::strftime

Synopsis
	  Defined in header <ctime>
	  std::size_t strftime(	char* str, std::size_t count, const char* for-
       mat, const
	  std::tm* time	);

	  Converts  the	 date  and time	information from a given calendar time
       time to a
	  null-terminated multibyte character string str according  to	format
       string format. Up
	  to count bytes are written.

Parameters
	  str	 - pointer to the first	element	of the char array for output
	  count	 - maximum number of bytes to write
	  format  -  pointer  to  a null-terminated multibyte character	string
       specifying the
		   format of conversion
	  time	 - pointer to the date and time	information to be converted

	 Format	string

	  The format string consists of	zero or	more conversion	specifiers and
       ordinary
	  characters (except %). All ordinary characters, including the	termi-
       nating null
	  character, are copied	to the	output	string	without	 modification.
       Each conversion
	  specification	begins with % character, optionally followed by	E or O
       modifier
	  (ignored  if	unsupported  by	the locale), followed by the character
       that determines
	  the behavior of the specifier. The following format  specifiers  are
       available:

	  Conversion						   Explanation
       Used fields
	  specifier
	      %	     writes literal %. The full	conversion specification
		     must be %%.
	      n	     writes newline character
	   (C++11)
	      t	     writes horizontal tab character
	   (C++11)
						  Year
	      Y	      writes   year   as   a   decimal	 number,   e.g.	  2017
       tm_year
	      EY     writes year in the	alternative representation,
	   (C++11)   e.g.23 (year Heisei 23) instead of	2011	 tm_year
		     (year 2011) in ja_JP locale
	      y	      writes  last 2 digits of year as a decimal number	(range
       tm_year
		     [00,99])
	      Oy     writes last 2 digits of year using	the alternative
	   (C++11)   numeric system, e.g.  instead of 11 in ja_JP      tm_year
		     locale
	      Ey      writes  year  as	offset	 from	locale's   alternative
       tm_year
	   (C++11)   calendar period %EC (locale-dependent)
	      C	      writes  first  2	digits	of  year  as  a	decimal	number
       tm_year
	   (C++11)   (range [00,99])
	      EC     writes name of the	base year (period) in the locale's
	   (C++11)   alternative representation, e.g.  (Heisei era) in tm_year
		     ja_JP
		     writes ISO	8601 week-based	year, i.e. the year that
		     contains the specified week.

	      G	     In	IS0 8601 weeks begin with Monday and  the  first  week
       tm_year,	tm_wday,
	   (C++11)    of  the  year  must  satisfy the following requirements:
       tm_yday

		       * Includes January 4
		       * Includes first	Thursday of the	year
		     writes last 2 digits of ISO 8601 week-based year, i.e.
		     the year that contains the	specified week (range
		     [00,99]).
	      g
       tm_year,	tm_wday,
	   (C++11)   In	IS0 8601 weeks begin with Monday and  the  first  week
       tm_yday
		     of	the year must satisfy the following requirements:

		       * Includes January 4
		       * Includes first	Thursday of the	year
						 Month
	      b	       writes	abbreviated   month  name,  e.g.  Oct  (locale
       tm_mon
		     dependent)
	      h			    synonym		   of		     b
       tm_mon
	   (C++11)
	      B	      writes  full month name, e.g. October (locale dependent)
       tm_mon
	      m	      writes  month  as	 a  decimal  number  (range   [01,12])
       tm_mon
	      Om      writes  month using the alternative numeric system, e.g.
       tm_mon
	   (C++11)    instead of 12 in ja_JP locale
						  Week
	      U	     writes week of the	year as	a decimal  number  (Sunday  is
       tm_year,	tm_wday,
		     the    first   day	  of   the   week)   (range   [00,53])
       tm_yday
	      OU      writes  week  of	the  year,  as	by   %U,   using   the
       tm_year,	tm_wday,
	   (C++11)   alternative numeric system, e.g.  instead of   tm_yday
		     52	in ja_JP locale
	      W	      writes  week  of the year	as a decimal number (Monday is
       tm_year,	tm_wday,
		     the   first   day	 of   the   week)   (range    [00,53])
       tm_yday
	      OW       writes	week   of  the	year,  as  by  %W,  using  the
       tm_year,	tm_wday,
	   (C++11)   alternative numeric system, e.g.  instead of   tm_yday
		     52	in ja_JP locale
		     writes ISO	8601 week of the year (range [01,53]).

	      V	     In	IS0 8601 weeks begin with Monday and  the  first  week
       tm_year,	tm_wday,
	   (C++11)    of  the  year  must  satisfy the following requirements:
       tm_yday

		       * Includes January 4
		       * Includes first	Thursday of the	year
	      OV      writes  week  of	the  year,  as	by   %V,   using   the
       tm_year,	tm_wday,
	   (C++11)   alternative numeric system, e.g.  instead of   tm_yday
		     52	in ja_JP locale
					 Day of	the year/month
	      j	      writes  day  of  the  year  as  a	 decimal number	(range
       tm_yday
		     [001,366])
	      d	     writes day	of  the	 month	as  a  decimal	number	(range
       tm_mday
		     [01,31])
		     writes zero-based day of the month	using the
	      Od     alternative numeric system, e.g  instead of 27
	   (C++11)		   in		    ja_JP		locale
       tm_mday

		     Single character is preceded by a space.
		     writes day	of the month as	a decimal number (range
	      e							      [1,31]).
       tm_mday
	   (C++11)
		     Single digit is preceded by a space.
		     writes one-based day of the month using the alternative
	      Oe     numeric system, e.g.  instead of 27 in ja_JP
	   (C++11)							locale
       tm_mday

		     Single character is preceded by a space.
					    Day	of the week
	      a	      writes  abbreviated  weekday  name,  e.g.	 Fri   (locale
       tm_wday
		     dependent)
	      A	       writes	full   weekday	 name,	 e.g.  Friday  (locale
       tm_wday
		     dependent)
	      w	     writes weekday as a decimal number,  where	 Sunday	 is  0
       tm_wday
		     (range [0-6])
	      Ow     writes weekday, where Sunday is 0,	using the
	   (C++11)    alternative  numeric  system,  e.g.   instead  of	 2  in
       tm_wday
		     ja_JP locale
	      u	     writes weekday as a decimal number,  where	 Monday	 is  1
       tm_wday
	   (C++11)   (ISO 8601 format) (range [1-7])
	      Ou     writes weekday, where Monday is 1,	using the
	   (C++11)    alternative  numeric  system,  e.g.   instead  of	 2  in
       tm_wday
		     ja_JP locale
					  Hour,	minute,	second
	      H	     writes hour as a decimal number,  24  hour	 clock	(range
       tm_hour
		     [00-23])
	      OH     writes hour from 24-hour clock using the alternative
	   (C++11)     numeric	 system,   e.g.	    instead  of	 18  in	 ja_JP
       tm_hour
		     locale
	      I	     writes hour as a decimal number,  12  hour	 clock	(range
       tm_hour
		     [01,12])
	      OI      writes  hour  from  12-hour  clock using the alternative
       tm_hour
	   (C++11)   numeric system, e.g.   instead of 06 in ja_JP locale
	      M	      writes  minute  as  a  decimal  number  (range  [00,59])
       tm_min
	      OM      writes  minute  using  the  alternative  numeric system,
       tm_min
	   (C++11)   e.g.  instead of 25 in ja_JP locale
	      S	      writes  second  as  a  decimal  number  (range  [00,60])
       tm_sec
	      OS      writes  second  using  the  alternative  numeric system,
       tm_sec
	   (C++11)   e.g.  instead of 24 in ja_JP locale

Other
	      c	     writes standard date and time string,  e.g.  Sun  Oct  17
       all
		     04:41:13 2010 (locale dependent)
	      Ec     writes alternative	date and time string, e.g. using
	   (C++11)   23	(year Heisei 23) instead of 2011 (year	 all
		     2011) in ja_JP locale
	      x	      writes  localized	date representation (locale dependent)
       all
	      Ex     writes alternative	date representation, e.g. using
	   (C++11)   23	(year Heisei 23) instead of 2011 (year	 all
		     2011) in ja_JP locale
	      X	     writes localized time representation,  e.g.  18:40:20  or
       all
		     6:40:20 PM	(locale	dependent)
	      EX	writes	 alternative   time   representation   (locale
       all
	   (C++11)   dependent)
	      D			equivalent	      to	    "%m/%d/%y"
       tm_mon, tm_mday,
	   (C++11)
       tm_year
	      F	      equivalent  to  "%Y-%m-%d"  (the	ISO  8601 date format)
       tm_mon, tm_mday,
	   (C++11)
       tm_year
	      r	     writes localized 12-hour clock  time  (locale  dependent)
       tm_hour,	tm_min,
	   (C++11)
       tm_sec
	      R			 equivalent		to	       "%H:%M"
       tm_hour,	tm_min
	   (C++11)
	      T	     equivalent	to  "%H:%M:%S"	(the  ISO  8601	 time  format)
       tm_hour,	tm_min,
	   (C++11)
       tm_sec
	      p	       writes	localized  a.m.	 or  p.m.  (locale  dependent)
       tm_hour
	      z	     writes offset from	UTC in the ISO 8601 format (e.g.
	   (C++11)   -0430), or	no characters if  the  time  zone  information
       tm_isdst
		     is	not available
		     writes locale-dependent time zone name or abbreviation,
	      Z	      or  no  characters  if  the time zone information	is not
       tm_isdst
		     available

Return value
	  The number of	bytes written into the character array pointed	to  by
       str not including
	  the terminating '\0' on success. If count was	reached	before the en-
       tire string could
	  be stored, 0 is returned and the contents are	undefined.

Example
       // Run this code

	#include <ctime>
	#include <iostream>
	#include <locale>

	int main()
	{
	    std::time_t	t = std::time(nullptr);
	    char mbstr[100];
	    if	 (std::strftime(mbstr,	sizeof(mbstr),	"%A  %c",  std::local-
       time(&t))) {
		std::cout << mbstr << '\n';
	    }
	    std::locale::global(std::locale("ja_JP.utf8"));
	    if	(std::strftime(mbstr,  sizeof(mbstr),  "%A  %c",   std::local-
       time(&t))) {
		std::cout << mbstr << '\n';
	    }
	}

Possible output:
	Tuesday	Tue Sep	 7 19:40:35 2021
	 20210907 194035

See also
						converts a std::tm object to a
       textual
	  asctime				representation
						(function)
						converts  a std::time_t	object
       to a textual
	  ctime					representation
						(function)
						converts a std::tm  object  to
       custom wide
	  wcsftime				string textual representation
						(function)
	  put_time				   formats   and   outputs   a
       date/time value
	  (C++11)				 according  to	the  specified
       format
						(function template)
	  std::formatter<std::chrono::hh_mm_ss>	specialization of std::format-
       ter that	formats
	  (C++20)				 a  hh_mm_ss  according	to the
       provided	format
						(class	template   specializa-
       tion)

http://cppreference.com		  2022.07.31		      std::strftime(3)

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

home | help