Mark As Completed Discussion

Time Zones

In C++, handling time zones can be done using the C++ library's chrono and iomanip.

To obtain the current time zone offset in seconds, we can start by getting the current time point using std::chrono::system_clock::now():

TEXT/X-C++SRC
1#include <chrono>
2
3// Get the current time point
4std::chrono::system_clock::time_point now = std::chrono::system_clock::now();

Next, we can calculate the time zone offset in seconds by subtracting the std::time_t representation of the current time point obtained from std::chrono::system_clock::to_time_t() with the std::time_t representation of the same time point obtained from std::chrono::utc_clock::to_time_t():

TEXT/X-C++SRC
1#include <chrono>
2
3// Get the current time zone offset in seconds
4std::chrono::seconds offset = std::chrono::system_clock::to_time_t(now) - std::chrono::utc_clock::to_time_t(now);

Finally, we can output the time zone offset in hours by dividing the offset by 3600 (since there are 3600 seconds in an hour):

TEXT/X-C++SRC
1#include <iostream>
2
3// Output the offset in hours
4std::cout << "Time zone offset: " << offset.count() / 3600 << " hours" << std::endl;

Try running the code above to see the current time zone offset in hours. The output will vary depending on the local time zone settings of your system.

CPP
OUTPUT
:001 > Cmd/Ctrl-Enter to run, Cmd/Ctrl-/ to comment