Java 检查YYYY-MM-DD日期的JSON模式

Java 检查YYYY-MM-DD日期的JSON模式,java,json,date,jsonschema,Java,Json,Date,Jsonschema,有人能告诉我仅接受YYYY-MM-DD格式日期的JSON模式验证吗 我的JSON示例: {"data1" : "foo", "date" :"2016-11-24"} 将正则表达式添加到json模式 在模式中,请使用以下命令 { "type": "string", "pattern": "^\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])$" } J

有人能告诉我仅接受
YYYY-MM-DD
格式日期的JSON模式验证吗

我的JSON示例:

{"data1" : "foo", "date" :"2016-11-24"}
将正则表达式添加到json模式 在模式中,请使用以下命令

{
   "type": "string",
   "pattern": "^\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])$"
}

JSON模式已经为日期、时间、日期时间、电子邮件、主机名、IP地址定义了格式。您可以选择这种更简单且推荐的方法,而不是编写自己的正则表达式

"date": {
  "type": "string",
  "format": "date"
}
日期和时间格式名称源自RFC 3339第5.6节[RFC3339]


参考:

使用下面的解决方案。。。它应该适用于YYYY-MM-DD或YYYY/MM/DD格式的所有日期。它验证了闰年,并将日期限制在2月份

{
   "type": "string",
   "pattern": "(((19|20)([2468][048]|[13579][26]|0[48])|2000)[/-]02[/-]29|((19|20)[0-9]{2}[/-](0[469]|11)[/-](0[1-9]|[12][0-9]|30)|(19|20)[0-9]{2}[/-](0[13578]|1[02])[/-](0[1-9]|[12][0-9]|3[01])|(19|20)[0-9]{2}[/-]02[/-](0[1-9]|1[0-9]|2[0-8])))"
}

请添加您的样本JSONHave updated。使用此正则表达式也将接受2月30日。。这是我的问题好的,你刚才指出的格式。。但关于有效性,您可以参考以下链接。刚刚试过这个。获取错误:ValueError:Invalid\escapedouble escape
\\d
\d
不是正则表达式功能的一部分。根据JSON规范,这些格式似乎不是必需的。这是正确的吗?