验证日期格式

时间:2016-11-21 06:56:00

标签: java regex validation datetime-format

我有以下方法来检查我的日期格式验证。

public static void main(String[] args) {
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX");
    String dateString = df.format(new Date());
    Validator validator = new Validator();
    System.out.println(dateString+" = "+validator.isTimesStampValid(dateString));
    String given = "2016­-09-­28T14:50:31.456449+06:00";
    System.out.println(given+" = "+validator.isTimesStampValid(given));
}

我得到的结果如下,

2016-11-21T12:18:18.000698+05:30 = false
2016-­09­-28T14:50:31.456449+06:00 = true

我的日期格式验证正则表达式是^\d{4}­-\d{2}-­\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(\+|-­)\d{2}:\d{2}$

我无法弄清楚为什么我在验证后得到两个不同的结果。 根据我的理解,我应该得到givendateString的值相同的结果。可以解释为什么我得到这个...

1 个答案:

答案 0 :(得分:0)

我只想提一下,你的正则表达式:

^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(\+|-)\d{2}:\d{2}$

匹配,根据regex101,我提供了两个示例字符串,以及我制作的其他几个。