Google表格:将字符串转换为日期

时间:2019-05-08 08:36:24

标签: regex date google-sheets google-sheets-formula

我必须遵循以下日期字符串:

2019-05-07T19:00:00.000Z

我现在想将日期和时间转换为2个单元格,但是它仍然不能与日期一起使用。我尝试过:

=LEFT(F2; FIND("T"; F2) - 1)

这将导致:

2019-05-07

但是我无法将其转换为DD.MM.YYYY之类的日期。如果手动输入“ 2019-05-07”,我可以将其转换-但不能与导入的数据转换。为什么?

我在时间上也有同样的问题。

3 个答案:

答案 0 :(得分:0)

如果字符串值的格式始终相同,则不需要正则表达式,甚至不需要FIND

获取日期

=text(text(text(day(LEFT(F2, 10)),"00") & "/" & text(month(LEFT(F2, 10)),"00") &"/"& year(LEFT(F2, 10)),"0000"),"dd.MM.yyyy")

({text(..., "dd.MM.yyyy")将用以下格式转换日期格式的字符串)和时间

=MID(F2, 12, 5)

查看Google表格截图:

enter image description here

答案 1 :(得分:0)

使用此:

={TEXT(DATE(LEFT(A13, 4), MID(A13, 6, 2), MID(A13, 9, 2)), "dd.MM.yyyy"),
 REGEXEXTRACT(A13, "T(.*)\.")}

0

答案 2 :(得分:0)

要回答您的问题,尽管从表面上看,文本函数(例如LEFT和TEXT)会返回Sheets不会自动尝试将其转换为日期格式的数字的字符串。

但是,可以使用VALUE函数来强制执行此操作。因此,将VALUE包裹在您尝试过的地方,就像这样:

=value(LEFT(F2; FIND("T"; F2) - 1))

以您的示例为例,使用自定义格式设置

时,应返回07.05.2019
dd.mm.yyyy

自标记了以来,您可以申请:

=split(regexreplace(F3;"[A-Z]";" ");" ")

在分割空格之前用空格替换TZ,因为格式看起来可能是一致的(例如,总是24个字符),但是较短的版本是:

=split(left(F2;23);"T")

应用日期和时间的适当格式。

如评论中所述

=MID(G2; 12; 5)

有一个潜在的缺点,即MID也是Text函数(因此不适合使用AM / PM进行方便的格式化)。