mktime在某些年份遇到问题?

Dae*_*eto -1 c mktime

我有多年的问题mktime().

每次我将一年低于1970年的时间传递给我struct tm,然后运行mktime()转换我的结构的函数,它就会失败(返回-1).

有谁知道为什么以及我能以某种方式完成这项工作?

unw*_*ind 7

这永远不会起作用,因为它是在时代之外定义,这是Unix时间的开始.手册页说明:

ctime(),gmtime()localtime()功能的全部采取数据time_t类型的参数表示日历时间.当解释为绝对时间值时,它表示自纪元,1970-01-01 00:00:00 +0000(UTC)以来经过的秒数.

如果它无法将输入转换为Unix时间,那么它会被记录为返回-1,这就是为什么你会看到这个结果.