groovy/java正则表达式检查是否;yyyy.MM.dd“;格式
我有一个表示日期的字符串,例如groovy/java正则表达式检查是否;yyyy.MM.dd“;格式,java,regex,date,groovy,Java,Regex,Date,Groovy,我有一个表示日期的字符串,例如“2010.12.25”。如何控制它是否为“yyyy.MM.dd”格式?不需要检查日期的有效性。您可以使用类似的方法检查日期的格式,因为使用regex验证日期格式是一种非常糟糕的做法,IMHO String strDate = "2010.12.25"; DateFormat df = new SimpleDateFormat("yyyy.MM.dd"); try { Date date = df.parse(strDate); // If it c
“2010.12.25”
。如何控制它是否为“yyyy.MM.dd”格式?不需要检查日期的有效性。您可以使用类似的方法检查日期的格式,因为使用regex
验证日期格式是一种非常糟糕的做法,IMHO
String strDate = "2010.12.25";
DateFormat df = new SimpleDateFormat("yyyy.MM.dd");
try {
Date date = df.parse(strDate);
// If it comes here, then its a valid format
} catch (ParseException pe) {
// If it comes here, then its not a valid date of this format.
}
使用
simpleDataFormat
来parse()
字符串,处理异常以确定它是否是有效的日期字符串。不要使用正则表达式检查日期。e、 g:
2010.30.40
2010.13.34
尝试使用方法
isValid(String-dateStr)
对此进行检查
试试这个
String a = "2010.12.12";
System.out.println(a.matches("\\d{4}\\.\\d{2}\\.\\d{2}"));
输出将为
真
您有正则表达式,在Groovy中,您可以执行以下操作:
boolean match = "2010.12.12" ==~ /\d{4}\.\d{2}\.\d{2}/
您还可以使用Groovy日期解析来检查日期格式的准确性。控制是什么意思?您到底需要什么?使用简单的日期格式,请参阅
匹配任何字符,例如1234567890
将匹配的字符。@Imagination,OP不需要日期的有效性。@NandkumarTekale-请参阅文档mm
表示分钟,mm
表示月份。您能详细说明一下为什么您认为使用regex验证日期格式是一种非常糟糕的做法吗?@Busted:因为这不是regex的目的。DateAPI和格式正是为此目的创建的。重新发明轮子是没有意义的。这不会检查日期的有效性。@来自Q的想象:“没有必要检查日期的有效性”它会验证这个1234.67K90
。奇怪的是,它并不总是适用于例如,如果您输入的日期为2016.01.99,它仍然会解析它
boolean match = "2010.12.12" ==~ /\d{4}\.\d{2}\.\d{2}/
try {
Date.parse('yyyy.MM.dd', '2013.12.21')
} catch(java.text.ParseException p) {
println "Unparseable Date"
}