我的Excel文档包含来自Java应用程序的Unix纪元时间戳。我想看看他们翻译的内容并将其表示为Excel中的人类可读日期。
例如,以下多篇文章: 1362161251894 应评估为类似的内容: 2013年3月1日11:07:31,894
我假设我可以为此创建一个公式,但我不确定如何。谢谢!
答案 0 :(得分:43)
是的,您可以创建一个公式来为您执行此操作。 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)
=(((x/1000)-(t*3600))/86400)+(DATEVALUE("1-1-1970") - DATEVALUE("1-1-1900"))
对于Mac OS X上的本地时间(将当前偏移替换为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"))
答案 1 :(得分:20)
This seems to be answered here,
=(A1 / 86400)25569
答案 2 :(得分:3)
纪元时间以毫秒(1523060201838
)提供。
用户希望转换为纽约时区( GMT -04:00 或 DST -14400 )。
Excel上的单元格A1具有13位数的历元时间。
((A1/1000)-14400)/86400 + 25569
转换为4/6/18 8:16 PM
(将格式设置为日期后)。
答案 3 :(得分:0)
Excel将整数值和时间表示为小数值。因此,如果从UNIX到1-1-1970以来以毫秒为单位提供了纪元时间,那么我们希望除以一年中的毫秒数并添加Excel's representation of 1-1-1970以提供人类可读的UTC时间。如果您的值在单元格A1中,那么Excel将需要:
=A1/86400/1000+DATEVALUE("1-1-1970")
注意如果您的纪元时间以秒为单位而不是毫秒,则可以删除/ 1000。转换为当地时间,其中' t'是您的本地UTC偏移(如果您有一个负的UTC偏移,请记得使用负值),您可以添加/减去UTC偏移:
=A1/86400/1000+DATEVALUE("1-1-1970")+t/24
请注意,您的UTC偏移量可能会因您所在位置是否观察到夏令时而有所不同,这使得这是一个不完整的解决方案,可以在一个电子表格中显示全年的当地时间。
答案 4 :(得分:0)
我发现最容易记住和理解的公式是:
从Unix / Epoch时间戳转换为Excel中的日期(假设时间戳在A2中):
=(A2/86400)+DATE(1970,1,1)
这将生成GMT Excel时间值。然后,您需要将单元格的格式设置为日期格式之一,或者创建自己的自定义格式。我倾向于使用:
dd-mmm-yy --> gives 05-Oct-18
dd-mmm-yyyy hh:mm:ss --> gives 05-Oct-2018 09:45:12
将日期转换为大纪元时间戳(假设日期在A2中):
=(A2-DATE(1970,1,1))*86400
我发现此页面非常有用: Extendoffice excel-timestamp-to-date
注意:如果您需要从格林尼治标准时间调整为当地时间(以纽约为例),请在末尾添加时差。以下显示了-5小时的偏移量。
=(A2/86400)+DATE(1970,1,1)+(-5/24)
答案 5 :(得分:0)
试试
=(A2/86400)+DATE(1970,1,1)+TIME(5,30,0)
这将有助于本地时间,例如印度是格林威治标准时间 + 5:30。