【问题标题】:convert unix epoch time to human readable time将 unix 纪元时间转换为人类可读的时间
【发布时间】:2013-01-13 14:08:01
【问题描述】:

首先我有一个 Unix 纪元时间 1270787111。

然后基于这个网站: http://untangible.com/2009/01/covert-unix-epoch-dates-in-microsoft-excel-including-timezone-examples.html, 我将数字转换为 40276.9758217592。 然后我将值放入 Excel 单元格并将其转换为“日期”格式为:4/8/10 23:25 我不知道这是怎么回事。如何将值 40926 转换为 2010(year)04(month)08(day)?有没有其他编程方法可以将 Unix 纪元时间转换为人类可读的格式时间?

【问题讨论】:

    标签: unix time epoch


    【解决方案1】:

    我个人最喜欢的是

    perl -E 'say scalar gmtime 1270787111'
    

    【讨论】:

      【解决方案2】:

      Excel 从 1900 年 1 月 0 日开始日期(是的,1 月 0 日)。来自这个link

      数字的整数部分 ddddd 表示自 1900 年 1 月 0 日以来的天数

      1900 年 1 月 0 日之后的 40,276 天。

      在许多编程语言(C/C++、Perl、PHP 等)中通常都有用于处理 UNIX 纪元时间戳的内置函数。这实际上取决于您使用的语言以及您将调用的方法/函数。这是一个显示一些examples in C的链接。

      【讨论】:

        【解决方案3】:

        如果你有 GNU coreutils date 命令,你可以这样做:

        $ date -d @1270787111
        Thu Apr  8 21:25:11 PDT 2010
        

        如果您希望在 C 中执行此操作,请使用 localtime()gmtime()time_t 值 1270787111 转换为 struct tm,然后使用 asctime() 将其转换为人类可读的字符串。 ctime(t) 等价于 asctime(localtime(t))。这假定您的 C 库将 time_t 值表示为自 Unix 纪元 (1970-01-01 00:00:00) 以来的秒数; POSIX 保证这一点,但 C 没有。

        strftime() 接受struct tm 并将其转换为人类可读的字符串,让您控制格式,而不是使用ctime()asctime() 强加的默认"Thu Apr 8 21:25:11 2010\n" 格式(是的,默认格式包括一个尾随换行符)。

        请务必阅读这些函数的文档。它们需要大量的指针操作。

        【讨论】:

          猜你喜欢
          • 2020-09-29
          • 2017-04-06
          • 2012-08-16
          • 2012-10-14
          • 2021-03-30
          • 1970-01-01
          • 2021-10-30
          • 2012-11-12
          • 2017-05-23
          相关资源
          最近更新 更多