我有一个工作表,其中有一列unix纪元时间(以秒为单位):1500598288如何将这些日期转换为正常日期?
jum4pzuy1#
截至2023年,GSheet引入了一个新函数EPOCHTODATE:
EPOCHTODATE
=EPOCHTODATE(1500598288)
要转换一整列数字,只需使用ARRAYFORMULA(或者BYROW,如果您倾向于LAMBDA):
ARRAYFORMULA
BYROW
LAMBDA
=ARRAYFORMULA(EPOCHTODATE(A:A)
=1500598288 / 86400 + DATE(1970, 1, 1)
=ARRAYFORMULA(A:A / 86400 + DATE(1970, 1, 1))
lsmd5eda2#
使用javascript Date function创建自定义函数:工具〉脚本编辑器...〉
function FROM_UNIX_EPOCH(epoch_in_secs) { return new Date(epoch_in_secs * 1000); // Convert to milliseconds }
然后在一个新的列中,您可以执行=FROM_UNIX_EPOCH(A1)
=FROM_UNIX_EPOCH(A1)
eqoofvh93#
在google工作表单元格中将纪元时间戳添加到日期时间(GMT调整)=A1/86400+日期(1970,1,1)+时间(5,30,0)
ijnw1ujt4#
现在,3年后从原来的职位,你可以使...工具〉脚本编辑器...〉
function millisToDate(timeInMillis){ var yourDateFromMillis = new Date(timeInMillis); return yourDateFromMillis; }
利用你在细胞里的新功能。=millisToDate(cell here)
=millisToDate(cell here)
amrnrhlw5#
基于已接受的答案,如果希望能够比较日期,则需要使用FLOOR(
=FLOOR(1500598288/86400)+date(1970,1,1)
否则,一个单元格中的“7/21/2017”可能不等于另一个单元格中的“7/21/2017”。
lvmkulzt6#
基于其他一些很棒的答案,下面是我用来从一个纪元时间戳中获取完整日期时间的方法。
=QUOTIENT(A1, 86400) + date(1970, 1, 1) + time(quotient(MOD(A1, 86400), 3600), quotient(mod(A1, 3600), 60), mod(A1, 60))
一些例子:| 历元|日期时间|| - ------|- ------|| 无|1970年1月1日0时00分|| 六十一|1970年1月1日0时01分01秒|| 小行星3599|1970年1月1日0时59分59秒|| 小行星86403|1970年1月2日0时00分03秒|| 2678402(= 86400 * 31 + 2)|1970年2月1日0时00分02秒|| 31536008(= 86400 * 365 + 8)|1971年1月1日0时00分08秒|
fjnneemd7#
在AppScript中粘贴:
function EpocToDate(epoch) { //var epoch = 1451606400000; 12/31/2015 19:00:00 return (Utilities.formatDate(new Date (epoch),'America/New_York','MM/dd/yyyy HH:mm:ss')); }
在Google工作表中用作:
=EpocToDate(1451606400000)
如果您必须从另一个单元格引用:
=EpocToDate(VALUE(C2))
zkure5ic8#
ttarchala在答案中给出的公式是不正确的,这里有一个更扩展的答案。我建议不要替换“自纪元以来的秒数”列中的数据。您可能需要它进行排序等。此外,将公式应用到整个列将很困难。相反,最初在它旁边插入一个新列。单击与最上面的历元单元格相邻的新单元格。假设最上面的历元单元格是A1,则在新单元格的公式框中输入此公式。
=A1/8640000+date(1970,1,1)
日期时间应该显示在新单元格中。默认情况下,它只显示日期而不显示时间。要使它也显示时间,您需要更改单元格格式。选中新的日期单元格后,单击123格式下拉菜单并选择所需的单元格格式。要将此公式应用于列中的所有单元格,请单击日期/时间单元格右下角的黑色小方块(手柄),并将其拖动到列底部。释放拖动后,应使用其相邻历元数据单元格的日期时间转换填充列。单独选择每个单元格时,您可以看到历元数据单元格索引在公式中发生变化。
8条答案
按热度按时间jum4pzuy1#
截至2023年,GSheet引入了一个新函数
EPOCHTODATE
:要转换一整列数字,只需使用
ARRAYFORMULA
(或者BYROW
,如果您倾向于LAMBDA
):ARRAYFORMULA
:*lsmd5eda2#
使用javascript Date function创建自定义函数:
工具〉脚本编辑器...〉
然后在一个新的列中,您可以执行
=FROM_UNIX_EPOCH(A1)
eqoofvh93#
在google工作表单元格中将纪元时间戳添加到日期时间(GMT调整)
=A1/86400+日期(1970,1,1)+时间(5,30,0)
ijnw1ujt4#
现在,3年后从原来的职位,你可以使...
工具〉脚本编辑器...〉
利用你在细胞里的新功能。
=millisToDate(cell here)
amrnrhlw5#
基于已接受的答案,如果希望能够比较日期,则需要使用FLOOR(
否则,一个单元格中的“7/21/2017”可能不等于另一个单元格中的“7/21/2017”。
lvmkulzt6#
基于其他一些很棒的答案,下面是我用来从一个纪元时间戳中获取完整日期时间的方法。
一些例子:
| 历元|日期时间|
| - ------|- ------|
| 无|1970年1月1日0时00分|
| 六十一|1970年1月1日0时01分01秒|
| 小行星3599|1970年1月1日0时59分59秒|
| 小行星86403|1970年1月2日0时00分03秒|
| 2678402(= 86400 * 31 + 2)|1970年2月1日0时00分02秒|
| 31536008(= 86400 * 365 + 8)|1971年1月1日0时00分08秒|
fjnneemd7#
在AppScript中粘贴:
在Google工作表中用作:
如果您必须从另一个单元格引用:
zkure5ic8#
ttarchala在答案中给出的公式是不正确的,这里有一个更扩展的答案。
我建议不要替换“自纪元以来的秒数”列中的数据。您可能需要它进行排序等。此外,将公式应用到整个列将很困难。相反,最初在它旁边插入一个新列。
单击与最上面的历元单元格相邻的新单元格。假设最上面的历元单元格是A1,则在新单元格的公式框中输入此公式。
日期时间应该显示在新单元格中。默认情况下,它只显示日期而不显示时间。要使它也显示时间,您需要更改单元格格式。选中新的日期单元格后,单击123格式下拉菜单并选择所需的单元格格式。
要将此公式应用于列中的所有单元格,请单击日期/时间单元格右下角的黑色小方块(手柄),并将其拖动到列底部。释放拖动后,应使用其相邻历元数据单元格的日期时间转换填充列。单独选择每个单元格时,您可以看到历元数据单元格索引在公式中发生变化。