java 正则表达式--检验日期格式

 

使用Pattern类和Matcher类完成一个日期格式是否符合要求的验证过程。 
例如:日期格式要求为:yyyy-mm-dd 
正则表达式验证规则过程: 
日期:    2015     -     12      -    08 
格式:   四位数字       两位数字        两位数字 
正则:   \\d{4}    -    \\d{2}   -   \\d{2} 
其中“\”字符是需要进行转义的,两个“\”实际上是表示一个“\”,所以实际上的 
“\\d”也表示的是“\d”。 
程序代码如下: 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class PatternTest { 

public static void main(String[] args) { 
// TODO Auto-generated method stub 
       String str="2005-12-08"; 
       String path="\\d{4}-\\d{2}-\\d{2}";//定义匹配规则 
       Pattern p=Pattern.compile(path);//实例化Pattern 
       Matcher m=p.matcher(str);//验证字符串内容是否合法 
       if(m.matches())//使用正则验证 
       { 
       System.out.println("输入的日期格式合法!"); 
       } 
       else 
       { 
       System.out.println("输入的日期格式不合法!"); 
       } 



https://673390302.iteye.com/blog/2262618

展开阅读全文

如何检验用户输入的日期格式是否正确

09-19

用户输入的日期格式如:12-28-2011 10:44 am GMT 即mm-dd-yyyy hh:mm am/pm timezonern如何在controller这层检测时间格式是否正确?rnrn假如时间要求是DateTime型的,是joda里的,该怎么检测,如果没有timezone的检测,我现在可以做到:rn[code=Java]rnpublic class test rn public static void main(String[] args) rn String endDate = "9-3-2011 11:22 am";rn DateTimeFormatter fmt = DateTimeFormat.forPattern("MM-dd-yyyy HH:mm aa");rn try rn DateTime expiration = fmt.parseDateTime(endDate);rn catch(Exception e) rn System.out.println(e.getMessage());rn rn rnrn[/code]rn但是有timezone我就不知道该怎么写了,我试了下rn[code=Java]rnpublic class test rn public static void main(String[] args) rn String endDate = "9-3-2011 11:22 am GMT";rn DateTimeFormatter fmt = DateTimeFormat.forPattern("MM-dd-yyyy HH:mm aa zzz");rn try rn DateTime expiration = fmt.parseDateTime(endDate);rn catch(Exception e) rn System.out.println(e.getMessage());rn rn rnrn[/code]rn错误信息:rnInvalid format: "9-3-2011 11:22 am GMT" is malformed at "GMT"rnrnjoda也有formater builder,我这样做也不行:rn[code=Java]rnpublic class test rn public static void main(String[] args) rn String endDate = "9-3-2011 11:22 am GMT";rn DateTimeFormatter fmt = new DateTimeFormatterBuilder()rn .appendDayOfMonth(2)rn .appendLiteral("-")rn .appendMonthOfYear(2)rn .appendLiteral("-")rn .appendYear(4,4)rn .appendLiteral(" ")rn .appendHourOfHalfday(2)rn .appendLiteral(":")rn .appendMinuteOfHour(2)rn .appendLiteral(" ")rn .appendHalfdayOfDayText()rn .appendLiteral(" ")rn .appendTimeZoneName()rn .toFormatter();rnrn try rn DateTime expiration = fmt.parseDateTime(endDate);rn catch(Exception e) rn System.out.println(e.getMessage());rn rn rnrn[/code]rn报同样的错误。rnrn不知道有没有解决办法。rnjdk里的datetime不知道有检测时区的吗?rnrn或者谁能提供变通的方法,总之我就是检测用户输入的日期格式是否正确。日期是否有效。当然还要把他转成DateTime型。rnrn 论坛

没有更多推荐了,返回首页