首页  ·  知识 ·  编程语言
使用Servlet建立日期格式化器可格式化工程内所有日期
网友  收集  Java  编辑:德仔   图片来源:网络
color: #0000ffimport/ color: #000000java.text.ParseExce
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>这个信息
     
*/

}
本文作者:网友 来源:网络收集
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的