您的位置:首页 > 其它

使用Servlet建立日期格式化器 可格式化工程内所有日期

2010-04-08 16:14 302 查看
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>这个信息
*/

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: