Tutorial :Getting current time of a different timezone using C++


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.


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.


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.


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.


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
Next Post »