现在的位置: 首页 > 综合 > 正文

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

2012年11月24日 ⁄ 综合 ⁄ 共 2129字 ⁄ 字号 评论关闭

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>这个信息
     
*/

}

 

抱歉!评论已关闭.