gpt4 book ai didi

c - 将 POSIX 显示为没有 gmtime 和 asctime 的日历日期

转载 作者:太空宇宙 更新时间:2023-11-04 04:52:09 26 4
gpt4 key购买 nike

我目前有一个包含 POSIX 时间戳的 double ,并且我成功地使用 gmtime 和 asctime 通过 time_t 结构显示日历日期:

    time_t input = posix;
printf("%s",asctime(gmtime(&input)));

这很好用,除了(显然)当 POSIX 时间超出 time.h 库的限制(即 1901-2038)时,在这种情况下它返回 1901 年的日期。是否有 gmtime/asctime/的简单替代方案time.h,还是我只需要处理原始数据?

编辑:我应该补充一点,结果很可能超出这些限制,因为 posix double 是计算的结果,而不是当前系统时间的实例化。

最佳答案

阅读Wikipedia entry on Unix Time :

The POSIX and Open Group Unix specifications include the C standard library, which includes the time types and functions defined in the <time.h> header file. The ISO C standard states that time_t must be an arithmetic type, but does not mandate any specific type or encoding for it.

如果您需要以可移植的方式处理大范围的时间,您可能必须使用自己的时间库。我认为你甚至不能指望struct tm覆盖范围从 1901 年到 2038 年。

您可能还想阅读此 StackOverflow answer regarding time_t .

关于c - 将 POSIX 显示为没有 gmtime 和 asctime 的日历日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14071481/

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