0

首先,我有一个 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 纪元时间转换为人类可读的格式时间?

4

3 回答 3

3

我个人最喜欢的是

perl -E 'say scalar gmtime 1270787111'
于 2013-01-29T21:20:55.507 回答
2

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

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

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

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

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

于 2013-01-29T21:31:09.200 回答
1

Excel 从 1900 年 1 月 0 日开始日期(是的,1 月 0 日)。从这个链接

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

您在 1900 年 1 月 0 日之后的 40,276 天结束日期。

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

于 2013-01-29T21:21:30.530 回答