gpt4 book ai didi

将人类时间转换为纪元 Unix 时间返回负数

转载 作者:太空宇宙 更新时间:2023-11-04 00:18:56 25 4
gpt4 key购买 nike

我目前正在编写一些 C 代码,我正在尝试将人类可读的日期转换为纪元时间戳(unix 时间戳)。但是,它总是返回一个负数。我正在使用 struct tm 并对日期值进行硬编码,直到我让它正常工作。下面是代码

struct tm t;
time_t t_of_day;
t.tm_year = 2012 - 1970;
t.tm_mon = 9;
t.tm_mday = 24;
t.tm_hour = 11;
t.tm_min = 34;
t.tm_sec = 30;
t.tm_isdst = 1;
t_of_day = mktime(&t);
printf("Epoch time stamp is: %ld\n", t_of_day);

执行此代码时,我得到 -858000330 的输出。

感谢您提供的任何帮助。

最佳答案

2012 - 1970 计算为 42。1942 年早于 1/1/1970。不过,mktime() 导致负时间戳是正常的。

来自 mktime 手册页:

tm_year   The number of years since 1900.

将您的年份计算更改为 2012 - 1900,您应该没问题。

关于将人类时间转换为纪元 Unix 时间返回负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13047516/

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