我在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
有人对此有解决方案吗?
答案 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
,在算术计算中将剩下的可识别为日期和时间。将日期和时间索引转换为秒,并调整偏移量。