【发布时间】:2017-09-26 09:22:51
【问题描述】:
glibc 版本的 struct tm 有额外的字段
long tm_gmtoff; /* Seconds east of UTC */
const char *tm_zone; /* Timezone abbreviation */
(参考:http://linux.die.net/man/3/ctime) 我的问题是:如果我有一个名为 struct tm a 的数据,并且我想将其复制到另一个 struct tm b,请按照以下代码:
time_t t = time(0);
const tm *pa = localtime(&t);
struct tm a;
if(pa) {
memcpy(&a, pa, sizeof(a));
}
但是,tm_gmtoff 和 tm_zone 会发生什么?如何也复制这些字段?
【问题讨论】:
-
为什么这两个字段不会被复制?
-
将此移至答案...
-
对于感兴趣的人,这里有一个现代的、线程安全的、跨平台的、用于处理时区相关问题的 C++11/14/17 库:howardhinnant.github.io/date/tz.html