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

标签 java excel datetime excel-formula

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

例如,以下长:1362161251894 应该评估为可读的内容,例如:01 Mar 2013 11:07:31,894

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

最佳答案

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

适用于 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 上的本地时间(将 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"))

关于java - 如何在 Excel 中将 Unix 纪元时间戳转换为人类可读的日期/时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15164237/

相关文章:

Excel - 匹配值并获取其他列的值

excel - 自动化 Excel 工作 - 将平面文件转换为 Excel 电子表格

mysql - INSERT 期间的 MSSQL 格式日期和时间

php - 如何将分钟添加到日期时间字段然后选择 mysql 中的所有匹配项?

java - ArrayAdapter() 构造函数中的第二个参数是什么?

使用无限循环时 javaFX UI 崩溃

swing - Switch 语句有问题吗?

excel - 将格式信息编码到 Google 表格或 Excel 公式中

node.js - 时刻等日历不工作

java - JNA:如何将指针传递给局部变量?