【问题标题】:Sample DateTime Format given Regex Pattern给定正则表达式模式的示例日期时间格式
【发布时间】:2016-03-11 00:05:17
【问题描述】:

我已经在线查看了 Regex 文档,但似乎在这方面没有取得太大进展。 我试图了解 DateTime 的格式被赋予了特定的正则表达式模式。 那么遵循这个正则表达式模式的示例 DateTime 字符串会是什么样子:

[1-9][0-9]{3}\-.+T[^\.]+(Z|[\+\-].+)

目前我正在传递以下日期时间:

2016-03-10T23:34:32.1898018Z

到基于上述正则表达式验证内容的 Web 服务(失败)。

任何帮助将不胜感激。

【问题讨论】:

    标签: regex datetime


    【解决方案1】:

    看起来如果您从测试输入中删除毫秒,它会匹配。因此,如果您希望该格式匹配,您可以将正则表达式更改为读取

    [1-9][0-9]{3}\-[0-1]?[1-9]\-[0-3]?[0-9]+T.+[\.][0-9]+(Z|[\+\-].+)
    

    【讨论】:

    • 感谢您的快速回复和图表,非常有帮助!我将删除毫秒,看看它是否有效......
    • 没问题。顺便说一句,正则表达式开头的额外部分 (\-[0-1]?[1-9]\-[0-3]?[0-9]+) 确保以某种方式输入日期部分。在您的表达中,这将匹配:2016-03T23:34:32Z
    【解决方案2】:

    您提到的正则表达式可以解析这些日期:

    • 2009-06-15T13:45:30-07:00(UTC-7 时区)
    • 2009-06-15T13:45:30+07:00(UTC+7 时区)
    • 2009-06-15T13:45:30Z(“Z”代表 UTC 时区)

    如果您想解析此日期 2016-03-10T23:34:32.1898018Z(以毫秒为单位),请将正则表达式更改为:

    [1-9][0-9]{3}\-.+T[^\.]+\.[0-9]+(Z|[\+\-].+)
    

    【讨论】:

    • 感谢您提供的信息,它确实有助于理解这个问题。
    猜你喜欢
    • 2010-09-08
    • 1970-01-01
    • 2014-06-23
    • 2014-10-23
    • 2012-10-09
    相关资源
    最近更新 更多