Java正则表达式检查日期和时间

标签 java regex

我在其中一个字段中使用 Datetime-local 供用户输入日期和时间;检查是否具有有效的格式;这些应该是可以接受的: '年-月-日 HH' 'yyyy-mm-dd HH:MM'(这就是所需的) 'yyyy-mm-dd HH:MM:SS'

到目前为止,我一直在尝试一些变体,想出了这个,但不幸的是它不起作用。哪里错了?

"\\d{4}-[01]\\d-[0-3]\\d\\s[0-2](\\d:[0-5]\\d:([0-5]\\d)?)?"

最佳答案

虽然,正如评论中所建议的,SimpleDateFormat.parse()是一个很好的、完美的和抽象的解决方案,但如果你仍然想尝试正则表达式,这应该可行:

\d{4}-[01]\d-[0-3]\d\s[0-2]\d((:[0-5]\d)?){2}

正则表达式有问题:

  • 您将 H(小时中的第二个数字)设置为可选。
  • 您还将在 MM 之后将冒号 (:) 设置为强制,而这应该是可选的。
  • 此正则表达式不会检查月份、年份和小时的组合。我的也没有检查。

关于Java正则表达式检查日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43845215/

相关文章:

javascript - 带扩展名的文件名验证

java - Hibernate、Collections 和 Session.refresh(...) 的 Stackoverflowerror/Unresolved Object Exception

java - 如何在字符串列表中使用正则表达式?

php - 正则表达式 - 排除数字之间的 "-"

javascript - 需要一个正则表达式,仅字母数字 _-() 除外。和 JavaScript 中的空格

c++ - 正则表达式通过正则表达式测试器但在 qt 中失败

javascript - 如何制作考虑重音字符的正则表达式?

java - Android 启动器 - 主页按钮

java - 找不到 LWJGL 显示类

java http GET - 结果解析