我的工作表中有一列unix纪元时间(以秒为单位):1500598288
如何将这些转换为正常日期?
答案 0 :(得分:52)
最简单的方法,不需要任何JS编程,将通过一个公式,除以每天86400秒并添加到1970年1月1日。例如,以下给出2017年7月21日:
=1500598288/86400+date(1970,1,1)
要转换整列数字,只需使用ARRAYFORMULA:
=arrayformula(A:A/86400+date(1970,1,1))
答案 1 :(得分:19)
使用javascript Date function创建自定义函数:
工具>脚本编辑器...>
function FROM_UNIX_EPOCH(epoch_in_secs) {
return new Date(epoch_in_secs * 1000); // Convert to milliseconds
}
然后在新专栏中,您可以=FROM_UNIX_EPOCH(A1)
答案 2 :(得分:5)
现在,从最初的帖子开始 3 年后,您可以制作...
工具 > 脚本编辑器... >
function millisToDate(timeInMillis){
var yourDateFromMillis = new Date(timeInMillis);
return yourDateFromMillis;
}
并在单元格中使用您的新函数...
=millisToDate(cell here)
答案 3 :(得分:4)
将 Epoch Timestamp 添加到 Google 表格单元格中的 DateTime(GMT 调整)
=A1/86400+日期(1970,1,1)+时间(5,30,0)
答案 4 :(得分:0)
在接受的答案的基础上,如果您希望能够比较日期,则将要使用FLOOR()
=FLOOR(1500598288/86400)+date(1970,1,1)
否则,一个单元格中的“ 7/21/2017”可能不等于另一个单元格中的“ 7/21/2017”。
答案 5 :(得分:-2)
ttarchala在答案中给出的公式是不正确的。这是一个更广泛的答案。
我建议不要在纪元时间列之后的秒内替换数据。您可能需要它进行分类等。此外,将配方应用于整个色谱柱也很困难。相反,最初在它旁边插入一个新列。
单击最顶层纪元细胞附近的新单元格。假设最上面的纪元单元格是A1,请将此公式输入新单元格的公式框中。
=A1/8640000+date(1970,1,1)
日期时间应显示在新单元格中。默认情况下,它只显示日期而不显示时间。为了使它显示时间,您需要更改单元格格式。选择新的日期单元格后,单击123格式下拉菜单,然后选择所需的单元格格式。
要将此公式应用于列中的所有单元格,请单击日期/时间单元格右下方的小黑色方块(手柄),然后将其拖动到列的底部。释放拖动后,应使用其相邻纪元数据单元的日期时间转换填充列。当您分别选择每个单元格时,您可以看到公式中的纪元数据单元格索引已更改。