【发布时间】:2011-08-10 21:23:34
【问题描述】:
我有 char date[] = "2011-04-01";它如何转换为 C 或 C++ 中的时间戳?
【问题讨论】:
-
也许这个答案会有所帮助:stackoverflow.com/questions/1002542/…
-
您的标题是 C,您的问题是 C 或 C++,而您只标记了 C++。你是用 C 编程,还是用 C++ 编程?
我有 char date[] = "2011-04-01";它如何转换为 C 或 C++ 中的时间戳?
【问题讨论】:
【讨论】:
time 可能是一个问题:“未指定...将更新结构的当前内容或覆盖结构的所有内容”。建议struct tm time = {0}; 并使用time->isdst == -1;。
试试这个:
char date[] = "2011-04-01";
date[4] = date[7] = '\0';
struct tm tmdate = {0};
tmdate.tm_year = atoi(&date[0]) - 1900;
tmdate.tm_mon = atoi(&date[5]) - 1;
tmdate.tm_mday = atoi(&date[8]);
time_t t = mktime( &tmdate );
【讨论】:
"2011-04-01" 是 本地 日期,而 DST not 与 tmdate.tm_mday == 0 一样有效。因此time_t t 可能从午夜开始有 1 小时的休息时间。