题记:写这篇博客要主是加深自己对类日期的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。


    每日一道理

有些冷,有些凉,心中有些无奈,我一个人走在黑夜中,有些颤抖,身体瑟缩着,新也在抖动着,我看不清前方的路,何去何从,感觉迷茫,胸口有些闷,我环视了一下周围,无人的街头显得冷清,感到整个世界都要将我放弃。脚步彷徨之间,泪早已滴下……

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"));
}
}


    这个还是从项目中拿过来,自己保存当前备用。

文章结束给大家分享下程序员的一些笑话语录: 自从有了Photoshop,我再也不相信照片了!(没有Photoshop的年代,胶片照片年代做假的也不少,那时候都相信假的!)

--------------------------------- 原创文章 By

类和日期

---------------------------------