我必须遵循以下日期字符串:
2019-05-07T19:00:00.000Z
我现在想将日期和时间转换为2个单元格,但是它仍然不能与日期一起使用。我尝试过:
=LEFT(F2; FIND("T"; F2) - 1)
这将导致:
2019-05-07
但是我无法将其转换为DD.MM.YYYY之类的日期。如果手动输入“ 2019-05-07”,我可以将其转换-但不能与导入的数据转换。为什么?
我在时间上也有同样的问题。
答案 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表格截图:
答案 1 :(得分:0)
使用此:
={TEXT(DATE(LEFT(A13, 4), MID(A13, 6, 2), MID(A13, 9, 2)), "dd.MM.yyyy"),
REGEXEXTRACT(A13, "T(.*)\.")}
答案 2 :(得分:0)
要回答您的问题,尽管从表面上看,文本函数(例如LEFT和TEXT)会返回Sheets不会自动尝试将其转换为日期格式的数字的字符串。
但是,可以使用VALUE函数来强制执行此操作。因此,将VALUE包裹在您尝试过的地方,就像这样:
=value(LEFT(F2; FIND("T"; F2) - 1))
以您的示例为例,使用自定义格式设置
时,应返回07.05.2019
dd.mm.yyyy
自标记了regex以来,您可以申请:
=split(regexreplace(F3;"[A-Z]";" ");" ")
在分割空格之前用空格替换T
和Z
,因为格式看起来可能是一致的(例如,总是24个字符),但是较短的版本是:
=split(left(F2;23);"T")
应用日期和时间的适当格式。
如评论中所述
=MID(G2; 12; 5)
有一个潜在的缺点,即MID也是Text函数(因此不适合使用AM / PM进行方便的格式化)。