java - 正则表达式 表示YYYY-MM-DD
巴扎黑
巴扎黑 2017-04-17 13:33:12
0
4
822

想问一下
java中如何判断一个字符串时间 是否是YYYY-MM-DD 正则怎么写啊 谢谢

巴扎黑
巴扎黑

全部回复(4)
左手右手慢动作

YYYY-MM-DD

最简单的写法

[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
\d\d\d\d-\d\d-\d\d
\d{4}-\d{2}-\d{2}

改进

1 把年份前两位限定为19或20

(19|20)[0-9][0-9]-[0-9][0-9]-[0-9][0-9]

2 把月份限定为01到12

(19|20)[0-9][0-9]-(0[1-9]|1[0-2])-[0-9][0-9]

3 把日期限定为01到31

(19|20)[0-9][0-9]-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[01])
(19|20)[0-9][0-9]-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])
左手右手慢动作

其实我建议你用SimpleDateFormat来parse一下,没有exception就是你想要的日期格式了。

SimpleDateFormat s =  new SimpleDateFormat("yyyy-MM-dd");
s.parse(source)
PHPzhong

这样就可以匹配到日期字符串了

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());
    }
}
PHPzhong

雷雷

参考

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板