我有一个包含从Java应用程序Unix纪元时间戳Excel文档。 我想看看它们翻译一下并代表他们作为的Excel内人类可读的日期。
例如,以下长:1362161251894值应该为喜欢的东西可读:2013年3月1日11:07:31894
我假设我可以为此创建一个公式,但我不知道怎么样。 谢谢!
我有一个包含从Java应用程序Unix纪元时间戳Excel文档。 我想看看它们翻译一下并代表他们作为的Excel内人类可读的日期。
例如,以下长:1362161251894值应该为喜欢的东西可读:2013年3月1日11:07:31894
我假设我可以为此创建一个公式,但我不知道怎么样。 谢谢!
是的,你可以创建一个公式来为你做这个。 Java和Unix / Linux操作系统计数的毫秒数,因为1/1/1970,而Microsoft Excel在它开始于1/1/1900的Windows和1904年1月1日针对Mac OS X你只需要做到以下几点,以兑换:
对于GMT时间在Windows
=((x/1000)/86400)+(DATEVALUE("1-1-1970") - DATEVALUE("1-1-1900"))
对于GMT时间在Mac OS X
=((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)。 所以,如果我粘贴单元格A1在一个新的Excel电子表格1362161251894给您的值,然后粘贴下面的公式,我得到的41333.46356一个结果,如果我再告诉Excel作为细胞上的日期(按ctrl + 1的格式)为:13年2月28日上午11点07分
=(((A1/1000)-(7*3600))/86400)+(DATEVALUE("1-1-1970") - DATEVALUE("1-1-1900"))
这似乎在这里得到解答 ,
=(A1 / 86400)25569
大纪元时间是以毫秒为单位(提供1523060201838
)。 用户正在寻求转换为纽约时区(GMT -04:00或DST -14400)。
Excel的单元格A1具有13位值出现时间。
((A1/1000)-14400)/86400 + 25569
转换成4/6/18 8:16 PM
(您格式小区日期之后)。
Excel中表示天为全值和时间以分数值。 因此,如果出现时间是以毫秒为单位自1970年1月1日从UNIX提供,那么我们想通过一年的毫秒数来划分,并添加的1970年1月1日Excel的代表提供人类可读的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偏移量可能会因夏令时是否在你的位置上观测,使这里成为展示在一个电子表格全年本地时间一个不完整的解决方案。
我发现,最简单的公式来记忆和阅读是这些:
转换从Unix /大纪元时间戳日期在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的时间戳最新
注意:如果您需要调整从GMT当地时间(纽约为例),在末尾添加的差异。 下面显示-5小时的偏差。
=(A2/86400)+DATE(1970,1,1)+(-5/24)