当前位置: 技术问答>java相关
判断一个字符串是否符合日期格式
来源: 互联网 发布时间:2015-10-12
本文导语: 那位高手知道在JAVA中有没有那个方法可以直接判断出我传入的字符串是否满足日期格式,一般在JAVA中日期格式是:2002年1月23日,还是1/23/2001或2002-01-23,解决问题一定给分,谢谢! | 下面的...
那位高手知道在JAVA中有没有那个方法可以直接判断出我传入的字符串是否满足日期格式,一般在JAVA中日期格式是:2002年1月23日,还是1/23/2001或2002-01-23,解决问题一定给分,谢谢!
|
下面的更好一点,可以判断出日起是否合法,
相当于Calendar的setLenient(false);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String rawDate = "2002-11-20";
java.util.Date date = format.parse(rawDate);
if (rawDate.equals(format.format(date))) {
System.out.println("Date is "+date.toString());
}else{
throw new IllegalArgumentException("Illegal date!");
}
相当于Calendar的setLenient(false);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String rawDate = "2002-11-20";
java.util.Date date = format.parse(rawDate);
if (rawDate.equals(format.format(date))) {
System.out.println("Date is "+date.toString());
}else{
throw new IllegalArgumentException("Illegal date!");
}
|
我写过的一个方法
public static String formatDateStr( String DateStr )
{
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
if( DateStr.length()==6 ) {
df = new SimpleDateFormat("yyMMdd");
}else if( DateStr.length()==10 ){
df = new SimpleDateFormat("yyyy/MM/dd");
}
try {
Date dd = df.parse(DateStr);
String ddp = df.format(dd);
if( ddp.equals(DateStr) )
{
if( DateStr.length()==10 ) return DateStr;
if( DateStr.length()==6 )
if ( Integer.parseInt(DateStr.substring(0,3))=50 )
DateStr = "19"+DateStr;
String year =DateStr.substring(0,4);
String mon = DateStr.substring(4,6);
String day = DateStr.substring(6,8);
return year+mon+day;
}
else
return null ;
}catch( Exception e )
{
e.printStackTrace();
return null ;
}
}
}
public static String formatDateStr( String DateStr )
{
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
if( DateStr.length()==6 ) {
df = new SimpleDateFormat("yyMMdd");
}else if( DateStr.length()==10 ){
df = new SimpleDateFormat("yyyy/MM/dd");
}
try {
Date dd = df.parse(DateStr);
String ddp = df.format(dd);
if( ddp.equals(DateStr) )
{
if( DateStr.length()==10 ) return DateStr;
if( DateStr.length()==6 )
if ( Integer.parseInt(DateStr.substring(0,3))=50 )
DateStr = "19"+DateStr;
String year =DateStr.substring(0,4);
String mon = DateStr.substring(4,6);
String day = DateStr.substring(6,8);
return year+mon+day;
}
else
return null ;
}catch( Exception e )
{
e.printStackTrace();
return null ;
}
}
}