【问题标题】:Convert milliseconds to time_t将毫秒转换为 time_t
【发布时间】:2013-06-23 08:25:21
【问题描述】:

我有从 2004 年到特定日期的毫秒数。我想将其转换为 time_t 以使用 ctime() 显示它?

也许还有另一种方法可以通过这个毫秒时间戳来可视化日期,有人有吗?

【问题讨论】:

    标签: c time ctime time.h time-t


    【解决方案1】:

    假设“从 2004 年开始”是指“从 2004 年 00:00 UTC 开始”,那么

    time_t time = 1072915200 + millis / 1000;
    

    注意ctime() 会以当地时间而不是 UTC 时间显示结果。

    【讨论】:

      【解决方案2】:

      time_t 的精度只有一秒。如果这对您来说没问题,您可以使用 mktime() 计算 2004-01-01 的 time_t 值,并将其添加到您的时间值(以秒为单位)。

      struct tm tp;
      memset(&tp, 0, sizeof(tp));
      tp.tm_mday = 1;
      tp.tm_mon = 0;
      tp.tm_year = 2004 - 1900;
      time_t offset = mktime(&tp);
      
      time_t realtime = offset + yourtime / 1000;
      
      printf("%s", ctime(&realtime));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-17
        • 2011-02-13
        • 2011-02-14
        • 1970-01-01
        相关资源
        最近更新 更多