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

NAME
     std::mktime - std::mktime

Synopsis
	Defined in header <ctime>
	std::time_t mktime( std::tm* time );

	Converts  local calendar time to a time since epoch as a std::time_t ob-
     ject.
	time->tm_wday and time->tm_yday are ignored. The values in time are per-
     mitted to be
	outside their normal ranges.

	A negative value of time->tm_isdst causes mktime to attempt to determine
     if Daylight
	Saving Time was in effect.

	If the conversion is successful, the time object is modified. All fields
     of time are
	updated to fit their proper ranges. time->tm_wday and time->tm_yday  are
     recalculated
	using information available in other fields.

Parameters
	time  -  pointer  to  a std::tm object specifying local calendar time to
     convert

Return value
	Time since epoch as a std::time_t object on success or -1 if time cannot
     be
	represented as a std::time_t object.

Notes
	If the std::tm object was obtained from std::get_time or the POSIX strp-
     time, the
	value of tm_isdst is indeterminate, and needs to be set  explicitly  be-
     fore calling
	mktime.

Example
	Construct a local time explicitly.

     // Run this code

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

      int main()
      {
	  setenv("TZ",	"/usr/share/zoneinfo/America/Los_Angeles", 1); // POSIX-
     specific

	  std::tm tm{}; // Zero initialise
	  tm.tm_year = 2020 - 1900; // 2020
	  tm.tm_mon = 2 - 1; // February
	  tm.tm_mday = 15; // 15th
	  tm.tm_hour = 10;
	  tm.tm_min = 15;
	  tm.tm_isdst = 0; // Not daylight saving
	  std::time_t t = std::mktime(&tm);
	  std::tm local = *std::localtime(&t);

	  std::cout << "local: " << std::put_time(&local, "%c %Z") << '\n';
      }

Possible output:
      local: Sat Feb 15 10:15:00 2020 PST

See also
	localtime converts time since epoch to calendar time expressed as  local
     time
		  (function)
	C documentation for
	mktime

http://cppreference.com 	   2024.06.10			  std::mktime(3)

home | help