Difference between revisions of "cpp/chrono/c/gmtime"
From cppreference.com
m (Text replace - "{{example cpp" to "{{example") |
Andreas Krug (Talk | contribs) m (fmt, headers sorted) |
||
(18 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
− | {{cpp/title| gmtime}} | + | {{cpp/title|gmtime}} |
− | {{cpp/chrono/c/ | + | {{cpp/chrono/c/navbar}} |
− | {{ddcl | header=ctime | | + | {{ddcl|header=ctime| |
− | std::tm* gmtime( const time_t* time ); | + | std::tm* gmtime( const std::time_t* time ); |
}} | }} | ||
− | Converts given time since epoch as {{ | + | Converts given time since epoch as {{lc|std::time_t}} value into calendar time, expressed in Coordinated Universal Time (UTC). |
===Parameters=== | ===Parameters=== | ||
− | {{ | + | {{par begin}} |
− | {{ | + | {{par|time|pointer to a time_t object to convert}} |
− | {{ | + | {{par end}} |
===Return value=== | ===Return value=== | ||
− | + | Pointer to a static internal {{lc|std::tm}} object on success, or null pointer otherwise. The structure may be shared between {{lc|std::gmtime}}, {{lc|std::localtime}}, and {{lc|std::ctime}} and may be overwritten on each invocation. | |
− | + | ||
===Notes=== | ===Notes=== | ||
This function may not be thread-safe. | This function may not be thread-safe. | ||
− | POSIX requires that this function sets {{ | + | POSIX requires that this function sets {{lc|errno}} to {{lc|EOVERFLOW}} if it fails because the argument is too large. |
===Example=== | ===Example=== | ||
{{example | {{example | ||
− | + | |code= | |
− | + | ||
− | + | ||
− | + | ||
#include <ctime> | #include <ctime> | ||
+ | #include <iomanip> | ||
+ | #include <iostream> | ||
+ | #include <sstream> | ||
+ | |||
int main() | int main() | ||
{ | { | ||
− | std::time_t t = std:: | + | setenv("TZ", "/usr/share/zoneinfo/Europe/London", 1); // POSIX-specific |
− | std::cout << "UTC: " << std::put_time(std::gmtime(&t), "%c %Z") << '\n' | + | |
− | + | 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'; | ||
} | } | ||
− | + | |p=true | |
− | UTC: Wed | + | |output= |
− | local: Wed | + | UTC: Wed Jul 15 09:15:00 2020 GMT |
+ | local: Wed Jul 15 10:15:00 2020 BST | ||
}} | }} | ||
===See also=== | ===See also=== | ||
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc inc|cpp/chrono/c/dsc localtime}} |
− | {{ | + | {{dsc see c|c/chrono/gmtime}} |
+ | {{dsc end}} | ||
+ | |||
+ | {{langlinks|de|es|fr|it|ja|pt|ru|zh}} |
Latest revision as of 22:29, 19 August 2023
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 |
[edit] Parameters
time | - | pointer to a time_t object to convert |
[edit] 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.
[edit] 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.
[edit] Example
Run this code
#include <ctime> #include <iomanip> #include <iostream> #include <sstream> 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
[edit] See also
converts time since epoch to calendar time expressed as local time (function) | |
C documentation for gmtime
|