import
java.text.ParseException;
import
java.text.SimpleDateFormat;
import
java.util.regex.Pattern;
import
org.apache.commons.beanutils.Converter;
public
class
UtilDateConverter
implements
Converter {
private
SimpleDateFormat ymdhmsSSS
=
new
SimpleDateFormat(
"
yyyy-MM-dd hh:mm:ss.SSS
"
);
private
SimpleDateFormat ymdhms
=
new
SimpleDateFormat(
"
yyyy-MM-dd hh:mm:ss
"
);
private
SimpleDateFormat ymd
=
new
SimpleDateFormat(
"
yyyy-MM-dd
"
);
public
Object convert(Class arg1, Object arg2) {
if
(
null
!=
arg2
&&
arg2
instanceof
String) {
try
{
String dateStr
=
(String) arg2;
if
(Pattern.matches(
"
\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{1,2}:\\d{1,2}.\\d{1,3}
"
, dateStr))
return
ymdhmsSSS.parse(dateStr);
else
if
(Pattern.matches(
"
\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{1,2}:\\d{1,2}
"
, dateStr))
return
ymdhms.parse(dateStr);
else
if
(Pattern.matches(
"
\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{1,2}
"
,dateStr))
return
ymdhms.parse(dateStr
+
"
:00
"
);
else
if
(Pattern.matches(
"
\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}
"
,dateStr))
return
ymdhms.parse(dateStr
+
"
:00:00
"
);
else
if
(Pattern.matches(
"
\\d{4}-\\d{1,2}-\\d{1,2}
"
, dateStr))
return
ymd.parse(dateStr);
else
if
(Pattern.matches(
"
\\d{4}-\\d{1,2}
"
, dateStr))
return
ymd.parse(dateStr
+
"
-01
"
);
}
catch
(ParseException e) {
e.printStackTrace();
return
null
;
}
}
return
null
;
}
/*
* 此类的用法如下: 创建一个servlet,servlet里面只要一个init() 方法
* public void init(){
* ConvertUtils.register(new UtilDateConverter(), java.util.Date.calss);
* }
* 然后在web.xml里注册此servlet类,类似代码如下
* <servlet>
* <servlet-name>UtilDateConverterRegister</servlet-name>
* <servlet-class>包名.UtilDateConverterRegister</servlet-class>
* <load-on-startup>2</load-on-startup>
* </servlet>
* 注意:此servlet不需要编写<servlet-mapping>这个信息
*/
}