Google 表格单元格中的 ISO-8601 字符串

ISO-8601 String to Date in Google Sheets cell

我的 sheet 的一列中有一堆 ISO-8601 格式的字符串。如何让 google sheets 将它们视为日期,以便我可以对它们进行数学运算(例如,两个单元格之间的分钟差异)?我只尝试了 =Date("2015-05-27T01:15:00.000Z") 但没有成功。必须有一个简单的方法来做到这一点。有什么建议吗?

试试这个

=CONCATENATE(TEXT(INDEX(SPLIT(SUBSTITUTE(A1,"Z",""),"T"),1),"yyyy-mm-dd")," ",TEXT(INDEX(SPLIT(SUBSTITUTE(A1,"Z",""),"T"),2),"hh:mm:ss"))

其中 A1 可以是带有 ISO-8601 格式字符串的单元格或字符串本身。

要获取可以使用普通数字格式设置格式的实际日期值...

=DATEVALUE(MID(A1,1,10)) + TIMEVALUE(MID(A1,12,8))

例如

A B
1 2016-02-22T05:03:21Z 2/22/16 5:03:21 AM
  • 假设时间戳为 UTC
  • 忽略毫秒(尽管您可以很容易地添加)

DATEVALUE() function turns a formatted date string into a value, and TIMEVALUE() 多次执行相同的操作。在大多数电子表格中,日期和时间由一个数字表示,其中整数部分是自 1900 年 1 月 1 日以来的天数,小数部分是作为一天的分数的时间。例如,2009 年 6 月 11 日 17:30 约为 39975.72917.

上述公式将日期部分和时间部分分别解析,然后相加。

我发现使用起来简单多了=SUM(SPLIT(A2,"TZ"))

格式化 yyyy-MM-dd HH:mm:ss.000 以再次将日期值视为 ISO-8601。