Google Sheets中UK与US日期时间格式转换异常求助
在Google Sheets中实现UK与US日期时间格式互转的正确方法
问题根源分析
- 你之前使用的
REGEXREPLACE正则表达式匹配的是yyyy-mm-dd格式,但原数据是dd-mm-yyyy,导致正则无法匹配,因此格式没有变化。 - 复制粘贴时出现数字/自动替换分隔符,是因为部分单元格是日期时间序列化值(Google Sheets用数字存储日期),粘贴时系统自动解析;而部分是纯文本,解析规则不一致导致显示混乱。
分场景解决方案
场景1:原数据是纯文本格式的dd-mm-yyyy hh:mm:ss
使用修正后的正则表达式拆分日期部分,重组为US格式并保留时间:
=ARRAYFORMULA(IF(A2:A="", "", REGEXREPLACE(A2:A, "^(\d{2})-(\d{2})-(\d{4}) (.*)$", "$3-$2-$1 $4")))
- 正则说明:
^(\d{2})-(\d{2})-(\d{4}) (.*)$捕获日(dd)、月(mm)、年(yyyy)和时间部分,替换为年-月-日 时间的US格式。
场景2:原数据是Google Sheets识别的日期时间值(显示为dd-mm-yyyy但实际是数字)
直接用TEXT函数指定输出格式,无需正则:
=ARRAYFORMULA(IF(A2:A="", "", TEXT(A2:A, "yyyy-mm-dd hh:mm:ss")))
TEXT函数会自动把日期序列化值转换成指定格式的文本,不会出现数字乱码。
场景3:同一列混合纯文本和日期值
用ISDATEVALUE判断数据类型,自动匹配对应处理逻辑:
=ARRAYFORMULA(IF(A2:A="", "", IF(ISDATEVALUE(A2:A), TEXT(A2:A, "yyyy-mm-dd hh:mm:ss"), REGEXREPLACE(A2:A, "^(\d{2})-(\d{2})-(\d{4}) (.*)$", "$3-$2-$1 $4"))))
后续格式优化
如果需要将转换后的文本转为可计算的日期时间值:
- 选中转换结果列
- 点击顶部菜单「格式」→「数字」→「日期时间」
- 在子菜单中选择
yyyy-mm-dd hh:mm:ss样式,或自定义格式
内容的提问来源于stack exchange,提问作者Stuart Bell
相关产品推荐
相关产品推荐

