【发布时间】:2010-11-11 00:34:55
【问题描述】:
如何在 C 中为以下日期创建 UTC 时间:
2038 年 7 月 1 日
使用标准 ANSI C 函数调用(假设 tm 结构的 tm_year 元素不能大于 137)?
【问题讨论】:
-
这不是一个糟糕的编程问题,如果您忽略特定的、在 32 位中无效的给定日期。我可能会将其拆分为两个问题,或者重写问题文本以突出显示 2038 问题。
-
由于
time_t类型是实现定义的,所以2038年只有32位系统有问题;大多数 64 位系统已经迁移到 64 位time_t值,您可能需要担心太阳会在此之前燃烧。 (具体来说:Solaris 10 - 64 位代码有sizeof(time_t) == 8,32 位代码有sizeof(time_t) == 4。)