Я ищу что-то, что, по моему мнению, было бы очень простым - учитывая локальное время Unix в определенном часовом поясе (указанном в виде строки, например, "Америка/Нью-Йорк" - обратите внимание, что не мое местное время), получите соответствующее значение времени в GMT. I.e, что-то вдоль линий
time_t get_gmt_time(time_t local_time,
const char* time_zone);
Как обманчиво просто, как это звучит, самым близким, который я мог найти, был следующий фрагмент кода из страницы man-времени:
#include <time.h>
#include <stdlib.h>
time_t
my_timegm(struct tm *tm)
{
time_t ret;
char *tz;
tz = getenv("TZ");
setenv("TZ", "", 1);
tzset();
ret = mktime(tm);
if (tz)
setenv("TZ", tz, 1);
else
unsetenv("TZ");
tzset();
return ret;
}
Должен быть лучший путь, чем эта воинственно небезопасная мерзость, не так ли? Право??