一尘不染

如何在Excel中将Unix纪元时间戳转换为人类可读的日期/时间?

java

我有包含Java应用程序中的Unix时间戳的Excel文档。我想看看它们翻译成什么,并在Excel中将其表示为人类可读的日期。

例如,以下long: 1362161251894的 求值 结果 应类似于: 2013年3月1日11:07:31,894

我假设可以为此创建一个公式,但不确定如何。谢谢!


阅读 302

收藏
2020-12-03

共1个答案

一尘不染

是的,您可以创建一个公式来为您执行此操作。Java和Unix / Linux计算自1970年1月1日以来的毫秒数,而Microsoft
Excel从Windows的1/1/1900和Mac OS X的1/1/1904开始计算。您只需要执行以下操作即可兑换:

对于Windows上的GMT时间

=((x/1000)/86400)+(DATEVALUE("1-1-1970") - DATEVALUE("1-1-1900"))

对于Mac OS X上的GMT时间

=((x/1000)/86400)+(DATEVALUE("1-1-1970") - DATEVALUE("1-1-1904"))

对于Windows上的本地时间(用当前的GMT偏移量替换t)

=(((x/1000)-(t*3600))/86400)+(DATEVALUE("1-1-1970") - DATEVALUE("1-1-1900"))

对于Mac OS X上的本地时间(用当前的GMT偏移量替换t)

=(((x/1000)-(t*3600))/86400)+(DATEVALUE("1-1-1970") - DATEVALUE("1-1-1904"))

在您的特定情况下,您似乎处于山区时间(GMT偏移为 7 )。因此,如果我将给定的 1362161251894
的值粘贴到单元格A1中的新Excel电子表格中,然后粘贴以下公式,则会得到41333.46356的结果,如果我随后告诉Excel将其格式化为日期(在单元格上按ctrl
+ 1 )是: 13-2-28上午11:07

=(((A1/1000)-(7*3600))/86400)+(DATEVALUE("1-1-1970") - DATEVALUE("1-1-1900"))
2020-12-03