首先我有一个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年(年)04(月)08(日)?有没有其他编程方法可以将Unix纪元时间转换为人类可读的格式时间?
答案 0 :(得分:3)
我个人最喜欢的是
perl -E 'say scalar gmtime 1270787111'
答案 1 :(得分:2)
如果你有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库表示自Unix纪元(1970-01-01 00:00:00)以来的秒数time_t
; POSIX保证这一点,但C不支持。
strftime()
获取struct tm
并将其转换为人类可读的字符串,让您控制格式,而不是使用"Thu Apr 8 21:25:11 2010\n"
强加的默认ctime()
格式asctime()
(是的,默认格式包括尾随换行符)。
请务必阅读这些功能的说明文件。它们需要大量的指针操作。
答案 2 :(得分:1)
Excel从1900年1月0日开始(是的,1月0日)。从link开始。
数字的整数部分ddddd表示自1900年1月1日以来的天数
您在1/0/1900之后的40,276天结束的日期。
许多编程语言(C / C ++,Perl,PHP等)中通常都有内置函数来处理UNIX纪元时间戳。它实际上取决于您使用的语言,您将调用哪些方法/函数。这是一个显示一些examples in C的链接。