当前位置:编程学习 > JAVA >>

java转换日期的工具类

[html] view plaincopyprint?
package com.lingan.common; 
 
import java.sql.Timestamp; 
import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import java.util.Date; 
import java.util.regex.Pattern; 
 
import org.apache.commons.lang.StringUtils; 
import org.apache.commons.logging.Log; 
import org.apache.commons.logging.LogFactory; 
 
public class DateUtils { 
    private static Log log = LogFactory.getLog(DateUtils.class); 
    public final static SimpleDateFormat dateMillTimeFormat = new SimpleDateFormat( 
            "yyyyMMddHHmmssSSS"); 
    public final static SimpleDateFormat dateTimeFormat = new SimpleDateFormat( 
            "yyyy-MM-dd HH:mm:ss.SSS"); 
    public final static java.util.regex.Pattern pattern = Pattern 
            .compile("^[0-9]{4}[/-][0-9]{1,2}[/-][0-9]{1,2}( +[0-9]{2}(:[0-9]{2}(:[0-9]{2}\\.?[0-9]{0,3})?)?)?$"); 
 
    public synchronized static Date toDate(String date) { 
        Date d = null; 
        // 20110201==>yyyyMMdd 
        // 2011/01/01==>yyyy/MM/dd 
        // 2011-01-01==>yyyy-MM-dd 
        try { 
            if (!pattern.matcher(date).matches()) { 
                throw new Exception(date+" is not a date format."); 
            } 
            String rdate = date.replaceAll("[/ :.-]", ""); 
            if (rdate.length() < 8) { 
                throw new Exception(); 
            } else { 
                while (rdate.length() < 17) { 
                    rdate += "0"; 
                } 
            } 
            d = dateMillTimeFormat.parse(rdate); 
        } catch (Exception e) { 
            log.error(date + " 日期格式錯誤."); 
        } 
        return d; 
    } 
 
    public static Date toDate(Timestamp date) { 
        return date; 
    } 
 
    public static Date toDate(Object date) { 
        Date d = null; 
        if (date instanceof Date) { 
            d = (Date) date; 
        } else if (date instanceof String) { 
            d = toDate((String) date); 
        } 
        return d; 
    } 
    public static Timestamp toTimeStamp(Object obj){ 
        if (obj==null || StringUtils.isBlank(obj.toString())){ 
            return null; 
        } 
        Date date = toDate(obj); 
        return new Timestamp(date.getTime()); 
    } 
    public synchronized static String format(Date date) { 
        return dateTimeFormat.format(date); 
    } 
 
    public synchronized static String format(Timestamp date) { 
        return dateTimeFormat.format(date); 
    } 
    public static String format(Date date, String format) { 
        return new SimpleDateFormat(format).format(date); 
    } 
 
    public synchronized static String format(Object date) { 
        String formatDate = null; 
        if (date instanceof Date) { 
            formatDate = dateTimeFormat.format((Date) date); 
        } 
        return formatDate; 
    } 
 
    public static void main(String[] args) { 
        System.out.println("1:" + DateUtils.toDate("2011")); 
        System.out.println("2:" + DateUtils.toDate("2011/12/20")); 
        System.out.println("3:" + DateUtils.toDate("2011/12/20 17:20:30")); 
        System.out.println("4:" + DateUtils.toDate("2011/12/20 17:20")); 
        System.out.println("5:" 
                + DateUtils.toDate(new Timestamp(Calendar.getInstance() 
                        .getTime().getTime()))); 
        System.out.println("6:" 
                + DateUtils.format(new Timestamp(Calendar.getInstance() 
                        .getTime().getTime()))); 
 
        System.out.println("10:" + DateUtils.toDate("2010/12/01")); 
        System.out.println("11:" + DateUtils.toDate("2011-01-01")); 

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,