在Google Spreadsheet中将UTC ISO字符串日期转换为UNIX时间戳

时间:2018-10-24 12:01:28

标签: google-sheets spreadsheet utc

我在Google电子表格中有这个UTC日期,并希望将其转换为Unix时间戳。

2018-10-18T08:55:13Z - should output 1539852913

我尝试了以下公式,但无法识别时间值: =DATEVALUE(MID(A1;1;10)) + TIMEVALUE(MID(A1;12;8))

如果我可以获得有效的日期和时间,则可以使用以下公式将其转换为Unix时间戳:

=(A1-$C$1)*86400

有人对此有解决方案吗?

2 个答案:

答案 0 :(得分:0)

假设您的日期在几天和一个月的日期中都以零开头,请拉出每个日期字符串部分,并将其放入DATE公式中,如下所示:

Year
=LEFT(A1,4)

Month
=MID(A1,6,2)

Day
=MID(A1,9,2)

Use the date formula
=DATE(year,month,day)
=DATE(LEFT(A1,4),MID(A1,6,2),MID(A1,9,2))

类似的过程可以用于TIME

Hour
=MID(A1,12,2)

Minutes
=MID(A1,15,2)

Seconds
=MID(A1,18,2)

Time
=TIME(Hour,Minutes,Seconds)
=TIME(MID(A1,12,2),MID(A1,15,2),MID(A1,18,2))

1)还有其他方法

2)如果您没有每个单位的前导0,则需要对公式进行调整。在这种情况下,您将需要使用FIND来识别关键字符的位置,并测量它们之间的距离,以确定是否存在一个数字单位或两位数字单位。

由于日期是整数部分(小数点左边)表示自1900/01/01(该日期为1)以来的天数,而小数部分表示时间(以天的小数部分表示),因此完整的日期和时间,您可以将日期公式添加到时间公式中,如下所示:

=DATE(LEFT(A1,4),MID(A1,6,2),MID(A1,9,2))+TIME(MID(A1,12,2),MID(A1,15,2),MID(A1,18,2))

答案 1 :(得分:0)

更简单:

=86400*(left(substitute(A1,"T"," "),19))-2209161600

用空格替换T并切断Z,在算术计算中将剩下的可识别为日期和时间。将日期和时间索引转换为秒,并调整偏移量。