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规范,这些格式似乎不是必需的。这是正确的吗?