搜索

首页  >  问答  >  正文

java - 正则表达式 表示YYYY-MM-DD

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

巴扎黑巴扎黑2806 天前842

全部回复(4)我来回复

  • ringa_lee

    ringa_lee2017-04-17 13:35:12

    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])
    

    回复
    0
  • ringa_lee

    ringa_lee2017-04-17 13:35:12

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

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

    回复
    0
  • PHPz

    PHPz2017-04-17 13:35:12

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

    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
  • PHPz

    PHPz2017-04-17 13:35:12

    雷雷

    参考

    回复
    0
  • 取消回复