灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2781回复:0

java转换日期的工具类

楼主#
更多 发布于:2013-05-25 14:59
[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"));
        System.out.println("12:" + DateUtils.toDate("2010-10-11 15:20:15"));
        System.out.println("13:" + DateUtils.toDate("2010-10-11 15:20"));
        System.out.println("14:" + DateUtils.toDate("2010-10-11 15"));
        System.out.println("15:" + DateUtils.toDate("2010-10-11 15:20:15.235"));
        System.out.println("16:" + DateUtils.toDate("2010-10-11 15:20:15"));
        System.out.println("17:" + DateUtils.toDate("2010-10-11 15:20:15"));
        System.out.println("18:" + DateUtils.toDate("15:12:30"));
        System.out.println("19:" + DateUtils.toDate("15:12:30.563"));
    }
}

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"));
  System.out.println("12:" + DateUtils.toDate("2010-10-11 15:20:15"));
  System.out.println("13:" + DateUtils.toDate("2010-10-11 15:20"));
  System.out.println("14:" + DateUtils.toDate("2010-10-11 15"));
  System.out.println("15:" + DateUtils.toDate("2010-10-11 15:20:15.235"));
  System.out.println("16:" + DateUtils.toDate("2010-10-11 15:20:15"));
  System.out.println("17:" + DateUtils.toDate("2010-10-11 15:20:15"));
  System.out.println("18:" + DateUtils.toDate("15:12:30"));
  System.out.println("19:" + DateUtils.toDate("15:12:30.563"));
 }
}
这个还是从项目中拿过来,自己保存以后备用。

喜欢0 评分0
游客

返回顶部