
Question:
How do i get the current time of a different time zone? Example, i need to know the current time in Singapore where as my system is set to PT time.
Solution:1
One implementation would be to use time
to get the current time in UTC and then manipulate the TZ
environment variable to your destination timezone. Then use localtime_r
to convert to that timezone's local time.
Solution:2
New answer for a very old question.
Given a C++11 or C++14 compiler, and this timezone library, the current time in Singapore is:
#include "tz.h" #include <iostream> int main() { using namespace std::chrono; std::cout << date::make_zoned("Asia/Singapore", system_clock::now()) << '\n'; }
which just output for me:
2015-08-19 05:25:05.453824 SGT
This gives the current local date, time and abbreviation in use. And it is based off of the <chrono>
library and the IANA timezone database.
std::chrono::system_clock::now()
returns a time stamp in the UTC timezone. This program locates the timezone information for "Asia/Singapore", and translates the UTC timestamp into a pair representing the local time and the current timezone for that location.
The above program is independent of the computer's current timezone.
Solution:3
Use UTC (GMT) as much as possible.
If you need to (for example) print a report that's going to another time zone, use something like SystemTimeToTzSpecificLocalTime() to localise it.
Solution:4
You could convert to GMT then convert to whatever time zone you want.
Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
EmoticonEmoticon