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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::asctime - std::asctime

Synopsis
	  Defined in header <ctime>
	  char*	asctime( const std::tm*	time_ptr );

	  Converts  given calendar time	std::tm	to a textual representation of
       the following
	  fixed	25-character form: Www Mmm dd hh:mm:ss yyyy\n

	    * Www - three-letter English abbreviated  day  of  the  week  from
       time_ptr->tm_wday,
	      one of Mon, Tue, Wed, Thu, Fri, Sat, Sun.
	    *	Mmm   -	 three-letter  English	abbreviated  month  name  from
       time_ptr->tm_mon, one of
	      Jan, Feb,	Mar, Apr, May, Jun, Jul, Aug, Sep, Oct,	Nov, Dec.
	    * dd - 2-digit day	of  the	 month	from  timeptr->tm_mday	as  if
       printed by sprintf
	      using %2d
	    * hh - 2-digit hour	from timeptr->tm_hour as if printed by sprintf
       using %.2d
	    *  mm  -  2-digit  minute  from  timeptr->tm_min  as if printed by
       sprintf using %.2d
	    * ss - 2-digit  second  from  timeptr->tm_sec  as  if  printed  by
       sprintf using %.2d
	    *  yyyy  - 4-digit year from timeptr->tm_year + 1900 as if printed
       by sprintf using
	      %4d

	  The behavior is undefined if any member of *time_ptr is outside  its
       normal range

	  The  behavior	 is  undefined	if  the	 calendar  year	 indicated  by
       time_ptr->tm_year has
	  more than 4 digits or	is less	than the year 1000.

	  The function does not	support	localization, and the newline  charac-
       ter cannot be
	  removed.

	  The function modifies	static storage and is not thread-safe.

Parameters
	  time_ptr - pointer to	a std::tm object specifying the	time to	print

Return value
	  Pointer  to  a  static  null-terminated character string holding the
       textual
	  representation of date and time. The string may  be  shared  between
       std::asctime and
	  std::ctime,  and  may	 be  overwritten  on each invocation of	any of
       those functions.

Notes
	  This function	returns	a pointer to static data and  is  not  thread-
       safe. POSIX marks
	  this function	obsolete and recommends	locale-dependent std::strftime
       instead.	In
	  std::locale("C")  the	 std::strftime format string "%c\n" will be an
       exact match to
	  std::asctime output, while in	other locales the format string	"%a %b
       %e %H:%M:%S
	  %Y\n"	will be	a potentially closer but not always exact match.

	  POSIX	limits undefined behaviors only	to the cases when  the	output
       string would be
	  longer  than 25 characters, when timeptr->tm_wday or timeptr->tm_mon
       are not within
	  the expected ranges, or when timeptr->tm_year	exceeds	INT_MAX-1990.

	  Some implementations handle timeptr->tm_mday==0 as meaning the  last
       day of the
	  preceding month.

Example
       // Run this code

	#include <ctime>
	#include <iomanip>
	#include <iostream>

	int main()
	{
	    const std::time_t now = std::time(nullptr);

	    for	 (const	 char  *localeName : {"C", "en_US.utf8", "de_DE.utf8",
       "ja_JP.utf8" }) {
		std::cout << "locale " << localeName <<	":" "\n" << std::left;
		std::locale::global(std::locale(localeName));

		std::cout <<  std::setw(40)  <<	 "     asctime"	 <<  std::asc-
       time(std::localtime(&now));

		// strftime output for comparison:
		char buf[64];
		if (strftime(buf, sizeof buf, "%c\n", std::localtime(&now))) {
		    std::cout << std::setw(40) << "    strftime	%c" << buf;
		}

		if  (strftime(buf,  sizeof  buf,  "%a  %b  %e  %H:%M:%S	%Y\n",
       std::localtime(&now))) {
		    std::cout << std::setw(40)	<<  "	  strftime  %a	%b  %e
       %H:%M:%S	%Y" << buf;
		}

		std::cout << '\n';
	    }
	}

Possible output:
	locale C:
	    asctime				Wed Nov	 4 00:45:01 2020
	    strftime %c				Wed Nov	 4 00:45:01 2020
	    strftime %a	%b %e %H:%M:%S %Y	Wed Nov	 4 00:45:01 2020

	locale en_US.utf8:
	    asctime				Wed Nov	 4 00:45:01 2020
	    strftime  %c			  Wed  04 Nov 2020 12:45:01 AM
       UTC
	    strftime %a	%b %e %H:%M:%S %Y	Wed Nov	 4 00:45:01 2020

	locale de_DE.utf8:
	    asctime				Wed Nov	 4 00:45:01 2020
	    strftime %c				Mi 04 Nov 2020 00:45:01	UTC
	    strftime %a	%b %e %H:%M:%S %Y	Mi Nov	4 00:45:01 2020

	locale ja_JP.utf8:
	    asctime				Wed Nov	 4 00:45:01 2020
	    strftime %c				20201104 004501
	    strftime %a	%b %e %H:%M:%S %Y	 11  4 00:45:01	2020

See also
	  ctime	   converts a std::time_t object to a textual representation
		   (function)
	  strftime converts a std::tm object to	custom textual representation
		   (function)
	  put_time formats and outputs a  date/time  value  according  to  the
       specified format
	  (C++11)  (function template)

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

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

home | help