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

2022-09-01 03:40:24

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

例如,以下长:1362161251894的计算结果应为可读的内容,如:01 Mar 2013 11:07:31,894

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


答案 1

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

对于窗口上的格林威治标准时间

=((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 上的本地时间(将 t 替换为您当前与 GMT 的偏移量)

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

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

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

在您的特定情况下,您看起来像是在山地时间(GMT偏移量为7)。因此,如果我将给定的1362161251894值粘贴到单元格A1的新Excel电子表格中,然后粘贴以下公式,我得到的结果为41333.46356,如果我然后告诉Excel格式为日期(按单元格上的ctrl + 1)是:2/28/13 11:07 AM

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

答案 2

这似乎在这里得到了回答

=(A1/86400)+25569