gpt4 book ai didi

c - mktime 返回错误的时间戳(关闭整整一个月)

转载 作者:行者123 更新时间:2023-12-04 09:30:26 25 4
gpt4 key购买 nike

我用 mktime从我当前的本地时间创建一个 unix 时间戳:

#include <time.h>

int _tmain(int argc, _TCHAR* argv[])
{
struct tm info;

// 16.05.2014
info.tm_mday = 16;
info.tm_mon = 5;
info.tm_year = 114; // Years since 1900

// 08:00:00 Uhr
info.tm_hour = 8;
info.tm_min = 0;
info.tm_sec = 0;

// Convert to Unix timestamp
info.tm_isdst = -1;
time_t timestamp = mktime(&info);
printf("Timestamp: %i", timestamp);
}

这给了我:

1402898400



当将其转换回人类可读的时间(通过某些网站)时,这会转化为:

16.06.2014 08:00:00



正如您所看到的,这与我的预期相距一个月(5 月 (5) 发布,6 月 (6) 发布)。
为什么?

最佳答案

C11 7.27.1 Components of time

int tm_sec; // seconds after the minute — [0, 60]
int tm_min; // minutes after the hour — [0, 59]
int tm_hour; // hours since midnight — [0, 23]
int tm_mday; // day of the month — [1, 31]
int tm_mon; // months since January — [0, 11]
int tm_year; // years since 1900
int tm_wday; // days since Sunday — [0, 6]
int tm_yday; // days since January 1 — [0, 365]
int tm_isdst; // Daylight Saving Time flag

tm_mon0 开头,不是 1 .所以 5的值意味着现在是六月,而不是五月。

关于c - mktime 返回错误的时间戳(关闭整整一个月),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23693669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com