Преобразование часового пояса C API на Linux, кто-нибудь?

искать то, что я предположил, было бы очень просто - учитывая местное время Unix в определенном часовом поясе (указанном в виде строки, например, "Америка / Триатлон» - обратите внимание, что этоне мое местное время), получите соответствующее значение времени в GMT. То есть что-то вроде

time_t get_gmt_time(time_t local_time,
                    const char* time_zone);

Как бы обманчиво это ни звучало, ближе всего я смог найти следующий фрагмент кода из timegm 'Страница man s:

       #include 
       #include 

       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;
       } 

Должен быть лучший способ, чем эта воинственная, не защищенная от нитей мерзость, верно? Правильно??

Ответы на вопрос(6)

Ваш ответ на вопрос