如何在 C 中创建特定日期、月份和年份的 UTC 时间?
如何使用标准 ANSI C 函数调用在 C 中创建以下日期的 UTC 时间:
2038 年 7 月 1 日
(假设 tm
结构的 tm_year
元素不能大于比 137) ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何使用标准 ANSI C 函数调用在 C 中创建以下日期的 UTC 时间:
2038 年 7 月 1 日
(假设 tm
结构的 tm_year
元素不能大于比 137) ?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
你不知道。 32 位 ANSI C time_t 会在 2038 年滚动。这就像问如何在旧的 2 位数年份 COBOL 系统中创建 2003 年 7 月 23 日。
You don't. The 32-bit ANSI C time_t rolls over in 2038. It's like asking how you create July 23, 2003 in your old 2-digit-year COBOL system.
其他人指出,您作为示例给出的特定日期超出了 32 位 time_t 可表示的最大日期/时间,通常称为 2038 年问题。 一种解决方案是使用 64 位 time_t,某些 64 位 POSIX 系统 (linux amd64) 就是这样做的,并调用
mktime
。Others have noted that the particular date you give as an example falls beyond the maximum date/time representable by a 32-bit time_t, often referred to as the Year 2038 problem. One solution is to use a 64-bit time_t, which some 64-bit POSIX systems do (linux amd64), and call
mktime
.您可以尝试使用以下示例:
它应该为您提供预期的结果。
You can try, making use of the following example :
It should give you, the expected result.