如何struct tm
在 Linux/gcc 中创建时区感知?我有以下代码:
struct tm date;
date.tm_year=2012-1900;
date.tm_mon=9;
date.tm_mday=30;
date.tm_hour=17;
date.tm_min=45;
date.tm_sec=0;
date.tm_zone="America/New_York";
time_t t = mktime(&date);
当我打印t
值为1349045100
. 所以我认为这同时使用 c++ 和 python 打印为字符串,它返回我: Sun Sep 30 18:45:00 2012
这是一个小时的时间。我想要 17:45 而不是 18:45。我使用的python命令是:
time.ctime(1349045100)
我正在使用的 C++ 是:
::setenv("TZ", "America/New_York",1);
::tzset();
strftime(tm_str, len_tm_str, "%Y%m%d %H:%M:%S", ::localtime(&t));
因此,当我构建时间时,似乎已经休息了一个小时。我该如何纠正?