Difference between revisions of "cpp/chrono/c/gmtime"
From cppreference.com
(fix dst) |
(simplify example) |
||
Line 34: | Line 34: | ||
std::tm tm{}; // get_time does not set all fields hence {} | std::tm tm{}; // get_time does not set all fields hence {} | ||
− | + | tm.tm_year = 2020-1900; // 2020 | |
− | + | tm.tm_mon = 7-1; // July | |
− | tm.tm_isdst = 1; // | + | tm.tm_mday = 15; // 15th |
− | std::time_t t = std::mktime(&tm); | + | tm.tm_hour = 10; |
+ | tm.tm_min = 15; | ||
+ | tm.tm_isdst = 1; // Daylight saving in London | ||
+ | std::time_t t = std::mktime(&tm); | ||
std::cout << "UTC: " << std::put_time(std::gmtime(&t), "%c %Z") << '\n'; | std::cout << "UTC: " << std::put_time(std::gmtime(&t), "%c %Z") << '\n'; |
Revision as of 05:51, 27 May 2021
Defined in header <ctime>
|
||
std::tm* gmtime( const std::time_t* time ); |
||
Converts given time since epoch as std::time_t value into calendar time, expressed in Coordinated Universal Time (UTC).
Contents |
Parameters
time | - | pointer to a time_t object to convert |
Return value
Pointer to a static internal std::tm object on success, or null pointer otherwise. The structure may be shared between std::gmtime, std::localtime, and std::ctime and may be overwritten on each invocation.
Notes
This function may not be thread-safe.
POSIX requires that this function sets errno to EOVERFLOW if it fails because the argument is too large.
Example
Run this code
#include <iostream> #include <sstream> #include <iomanip> #include <ctime> int main() { setenv("TZ", "/usr/share/zoneinfo/Europe/London", 1); // POSIX-specific std::tm tm{}; // get_time does not set all fields hence {} tm.tm_year = 2020-1900; // 2020 tm.tm_mon = 7-1; // July tm.tm_mday = 15; // 15th tm.tm_hour = 10; tm.tm_min = 15; tm.tm_isdst = 1; // Daylight saving in London std::time_t t = std::mktime(&tm); std::cout << "UTC: " << std::put_time(std::gmtime(&t), "%c %Z") << '\n'; std::cout << "local: " << std::put_time(std::localtime(&t), "%c %Z") << '\n'; }
Possible output:
UTC: Wed Jul 15 09:15:00 2020 GMT local: Wed Jul 15 10:15:00 2020 BST
See also
converts time since epoch to calendar time expressed as local time (function) | |
C documentation for gmtime
|