【问题标题】:regular expression for datetimeformat (yyyy-mm-ddThh:mm:ss) ISO8601 formatdatetimeformat (yyyy-mm-ddThh:mm:ss) ISO8601 格式的正则表达式
【发布时间】:2014-07-24 15:28:56
【问题描述】:

我想验证日历对象应为 2014-05-05T12:12:30。如何使用正则表达式验证 this

【问题讨论】:

  • 看看这个帖子,它是JS但很相似http://stackoverflow.com/a/12756279/2362664
  • 根据您真正想要实现的目标,您可以使用 Joda 日期时间库的内置功能。查看函数ISODateTimeFormat.dateTimeParser()

标签: java regex iso8601


【解决方案1】:

Adam Yost 的答案中的正则表达式很接近,但在 T 之前缺少一个右括号...没有足够的代表发表评论,所以这里是更正的版本:

(19|20)[0-9][0-9]-(0[0-9]|1[0-2])-(0[1-9]|([12][0-9]|3[01]))T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]

【讨论】:

    【解决方案2】:

    这个正则表达式只会匹配该格式的日期,但有一些限制:

    (19|20)[0-9][0-9]-(0[0-9]|1[0-2])-(0[1-9]|([12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]
    

    这匹配 1900-2099 年,12 个月,最长 31 天,24 小时制,最长 59 分钟,最长 59 秒

    应该注意的是,如果您希望验证某事是否是一个真正有效的日期(即不是 2 月 30 日),您将需要一个更复杂的正则表达式,或者一些简单的代码来包裹它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-09
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 2017-07-10
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      相关资源
      最近更新 更多