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


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

}

 

你可能感兴趣的:(servlet)