想问一下
java中如何判断一个字符串时间 是否是YYYY-MM-DD 正则怎么写啊 谢谢
其实我建议你用SimpleDateFormat
来parse一下,没有exception就是你想要的日期格式了。
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
s.parse(source)
这样就可以匹配到日期字符串了
public class Q1010000002719930 {
public static void main(String[] args) {
matchDateString("2015-4-30"); //false
matchDateString("2015-04-30"); //true
matchDateString("2015-02-20"); //true
}
private static void matchDateString(String string) {
Pattern pattern = Pattern.compile("(\\d){4}-(\\d){2}-(\\d){2}");
Matcher matcher = pattern.matcher(string);
System.out.println(matcher.find());
}
}
(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[13579][26])00))-02-29)
3 回答2.7k 阅读✓ 已解决
3 回答4.1k 阅读✓ 已解决
8 回答3.6k 阅读
4 回答2.7k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
3 回答2.6k 阅读✓ 已解决
3 回答1.7k 阅读✓ 已解决
YYYY-MM-DD
最简单的写法
改进
1 把年份前两位限定为19或20
2 把月份限定为01到12
3 把日期限定为01到31