You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何验证带ET时区的两种日期时间格式?

匹配指定日期格式的正则表达式解决方案

你需要匹配的是两种美式日期格式:MM-DD-YYYY HH:MM AM/PM ET 或 MM/DD/YYYY HH:MM AM/PM ET,之前使用的正则是针对ISO 8601格式(YYYY-MM-DDTHH:MM:SSZ)的,自然无法匹配目标格式。

推荐正则表达式(严格校验版)

^(0[1-9]|1[0-2])([-/])(0[1-9]|[12]\d|3[01])\2\d{4}\s(0[1-9]|1[0-2]):([0-5]\d)\s(AM|PM)\sET$

正则各部分解释

  • ^(0[1-9]|1[0-2]):匹配合法月份(01-12)
  • ([-/]):匹配日期分隔符-或/,用捕获组\2保证整个日期的分隔符统一(避免出现MM/DD-YYYY这种混合格式)
  • (0[1-9]|[12]\d|3[01]):匹配合法日期(01-31)
  • \2\d{4}:复用之前的分隔符,匹配4位年份
  • \s(0[1-9]|1[0-2]):([0-5]\d):匹配12小时制的时间(01-12点,00-59分),前后带空格
  • \s(AM|PM)\sET$:匹配AM/PM标识和时区ET,结尾固定为ET

测试示例

匹配成功的案例

  • 06-01-2023 11:59 PM ET
  • 12/31/2024 09:05 AM ET
  • 01/01/2020 12:00 PM ET

匹配失败的案例

  • 06/01-2023 11:59 PM ET(分隔符不统一)
  • 13-01-2023 11:59 PM ET(月份超出范围)
  • 06-32-2023 11:59 PM ET(日期超出范围)
  • 06-01-2023 13:59 PM ET(小时不符合12小时制)
  • 06-01-2023 11:60 PM ET(分钟超出范围)
  • 06-01-2023 11:59 PM(缺少ET标识)

如果不需要严格校验月份、日期的合法性,只匹配格式的话,可以用简化版:

^\d{2}([-/])\d{2}\1\d{4}\s\d{2}:\d{2}\s(AM|PM)\sET$

内容的提问来源于stack exchange,提问作者iDan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 09:15:34