首先,我有一个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纪元时间转换为人类可读的格式时间?
发布于 2013-01-30 05:31:09
如果您有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库将POSIX值表示为自Unix时期(1970-01-01 00:00:00)以来的秒数;time_t保证这一点,但C不保证这一点。
strftime()接受struct tm并将其转换为人类可读的字符串,让您可以控制格式,而不是使用ctime()和asctime()强加的默认"Thu Apr 8 21:25:11 2010\n"格式(是的,默认格式包括尾随换行符)。
请务必阅读这些函数的文档。它们需要大量的指针操作。
发布于 2013-01-30 05:20:56
我个人最喜欢的是
perl -E 'say scalar gmtime 1270787111'发布于 2013-01-30 05:21:31
Excel的起始日期是1900年1月0日(是的,1月0日)。从这个link。
数字的整数部分ddddd表示自1900年1月0日以来的天数
在1/0/1900之后的40,276天结束的日期。
在许多编程语言(C/C++、Perl、PHP等)中通常都有内置函数。用于处理UNIX纪元时间戳。这真的取决于你所使用的语言,以及你要调用的方法/函数。这里有一个显示一些examples in C的链接。
https://stackoverflow.com/questions/14592485
复制相似问题