时间格式转换为I Sheets / Excel

问题描述

我想找到一个公式,用于转换表单上输出的日期和时间原始文本:

May 22,2018 at 02:17PM

要使Google表格更易理解,例如:

22/5/2018 14:17:00

这可能吗?我说的是将书面月份转换为计数月份,从12小时制转换为24小时制,并重新安排日期/月份。我觉得这有点模棱两可,但是有可能吗?

解决方法

请使用以下内容

=--REGEXREPLACE(A2,"at","")

由于日期/时间是数字,因此您的结果将采用43242.5951388889

的形式

然后从菜单Format--> Number--> Date time将结果格式化为标准格式。
您还可以进一步选择More Formats--> More date and time formats以获得更多选项。

(如果仍有问题,请告诉我们)


添加
正如JvdV在他的comment上所建议的,并且由于REGEXREPLACESUBSTITUTE更加贪婪,

=--SUBSTITUTE(A2,"")

,

解决方案1-获取日期时间值

您可以使用公式转换这类字符串,而无需在菜单中设置格式:

= DATE(
    REGEXEXTRACT(A2,"\d{4}"),MATCH(
      LOWER(REGEXEXTRACT(A2,"^\w+")),{"jan"; "feb"; "mar"; "apr"; "may"; "jun"; "jul"; "aug"; "sep"; "oct"; "nov"; "dec"},0
    ),REGEXEXTRACT(A2,"\s(\d{2}),")
  )
+ TIME(
    MOD(REGEXEXTRACT(A2,"(\d+):") + IF(REGEXMATCH(A2,"(?i)\s(?:(?:0?\d|1[^2]):\d+pm|12:\d+am)$"),12,0),24),":(\d{2})"),0
  )

enter image description here

然后C1使用以下公式格式化了日期时间:

=TEXT(B2,"dd/m/yyyy hh:mm:ss")

解决方案2-获得正确的字符串

=SUBSTITUTE(
  SUBSTITUTE(
    REGEXREPLACE(
      A2,"(?i)^\D+(\d+)\D+(\d+)\D+\d+:(\d+)(?:PM|AM)$","$1/month/$2 hour:$3:00"
    ),"month",0
    )
  ),"hour",MOD(REGEXEXTRACT(A2,"(?i)\s(?:(?:0?\d|1[^2]):.+pm|12:.+am)$"),24)
)

enter image description here