将UTC ISO字符串日期转换为Unix时间戳

5
我在Google电子表格中有这个UTC日期:2018-10-18T08:55:13Z,希望将其转换为Unix时间戳(1539852913)。我尝试了这个公式,但它无法识别时间值:
=DATEVALUE(MID(A1;1;10)) + TIMEVALUE(MID(A1;12;8))

如果我能获得一个有效的日期和时间,我就可以使用这个公式将其转换为Unix时间戳:
=(A1-$C$1)*86400

有没有人有解决这个问题的方案?

你今天和这个月的日期是以0开头吗?例如,1月1日是2018-01-01、2018-1-1、2018-01-1还是2018-1-01?这会影响从字符串中提取日期的可能方式。 - Forward Ed
2个回答

4

更简单:

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

T替换为空格并去掉Z,仅保留可在算术计算中识别为日期和时间的部分。将日和时间索引转换为秒,并根据偏移量进行调整。


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))

可以使用类似的过程来处理时间。
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))

完整的日期时间戳为:=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))(注意:原始文本中A1、6和2分别表示日期和月份) - Dnaaz
@Dnaaz 谢谢,已更新公式并在末尾添加了一块内容。 - Forward Ed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接