我有以下方法来检查我的日期格式验证。
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}$
我无法弄清楚为什么我在验证后得到两个不同的结果。
根据我的理解,我应该得到given
和dateString
的值相同的结果。可以解释为什么我得到这个...
答案 0 :(得分:0)
我只想提一下,你的正则表达式:
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(\+|-)\d{2}:\d{2}$
匹配,根据regex101,我提供了两个示例字符串,以及我制作的其他几个。