【发布时间】:2016-03-03 06:16:26
【问题描述】:
我一直在尝试将字符串“1998-04-11”简单地转换为根据在线转换器应该是 892245600 的 UNIX 时间戳。
但我不断得到不同的结果。
struct tm tm;
time_t ts;
strptime("1998-04-11", "%Y-%m-%d", &tm);
tm.tm_mon = tm.tm_mon -1;
ts = mktime(&tm);
printf("%d \n", (int)ts); //unix time-stamp
printf("%s \n", ctime(&ts)); //human readable date
结果:
893502901
Sat Apr 25 13:15:01 1998
谁能告诉我我做错了什么?
【问题讨论】:
-
在在线转换器和您的本地机器中使用相同的时区?
-
如何检查?另外,我如何得到与我输入的完全不同的日期?这和当地时间有关吗?
标签: c++ unix-timestamp