小编igo*_*gor的帖子

Linux上的时区转换C API,有人吗?

我正在寻找一些我认为非常简单的东西 - 考虑到特定时区的本地Unix时间(指定为字符串,例如"America/New_York" - 请注意,这不是我当地的时间),得到相应的时间值在GMT.也就是说,有些东西

time_t get_gmt_time(time_t local_time,
                    const char* time_zone);
Run Code Online (Sandbox Code Playgroud)

听起来很简单,我能找到的最接近的是来自timegm手册页的以下代码片段:

       #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;
       } 
Run Code Online (Sandbox Code Playgroud)

有一种比这更好的方式不是线程安全的憎恶,对吧?对??

c linux timezone

27
推荐指数
2
解决办法
2万
查看次数

标签 统计

c ×1

linux ×1

timezone ×1