packagecom.nubb.util;/*** Created by IntelliJ IDEA.
* User: leo
* Date: 2008-10-25
* Time: 15:56:43
* Mascot Leo & featherheanven@gmail.com*/
importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.TimeZone;importjava.util.Calendar;public classDateUtil
{private static final TimeZone timeZone = TimeZone.getTimeZone("GMT+08:00");private static final String format1 = "yyyy-MM-dd HH:mm:ss";private static final String format2 = "yyyy-MM-dd";private static final String format3 = "HH:mm";private static final String format4 = "MM-dd HH:mm";private static final String format5 = "M月d日";private static final SimpleDateFormat dateFormat1 = newSimpleDateFormat(format1);private static final SimpleDateFormat dateFormat2 = newSimpleDateFormat(format2);private static final SimpleDateFormat dateFormat3 = newSimpleDateFormat(format3);private static final SimpleDateFormat dateFormat4 = newSimpleDateFormat(format4);private static final SimpleDateFormat dateFormat5 = newSimpleDateFormat(format5);publicDateUtil()
{
}/** 根据所选的时间格式将String类型的时间转换为long类型
* @param String time, int format
* @return long*/
public static long getTimeStamp(String time, int format) throwsParseException
{if (format == 1)
{returndateFormat1.parse(time).getTime();
}else if (format == 2)
{returndateFormat2.parse(time).getTime();
}else{returndateFormat3.parse(time).getTime();
}
}public static long getTimeStamp(String time,int format,longdefaulttime)
{try{returngetTimeStamp(time,format);
}catch(Exception e){returndefaulttime;
}
}/** 根据所选的时间格式将long类型的时间转换为String类型 数据库的unixtime*1000 = 系统的timestamp
* @param long time, int format
* @return String*/
public static String getTimeFromDB(long timeStamp, int format) throwsParseException
{return getTime(timeStamp*1000,format);
}public static String getTime(long timeStamp, int format) throwsParseException
{if (format == 1)
{return dateFormat1.format(newDate(timeStamp));
}else if (format == 2)
{return dateFormat2.format(newDate(timeStamp));
}else if(format == 3)
{return dateFormat3.format(newDate(timeStamp));
}else if(format == 4){return dateFormat4.format(newDate(timeStamp));
}else if(format == 5){return dateFormat5.format(newDate(timeStamp));
}else{return dateFormat1.format(newDate(timeStamp));
}
}/*** 获取默认时间
*
*@returndate*/
public staticDate getDefaultAsDate()
{return new Date(0);
}/*** J
* 获取默认时间
*
*@returnlong*/
public static longgetDefaultAsLong()
{return 0L;
}/*** J
* 获取当前时间
*
*@returndate*/
public staticDate getNowAsDate()
{return newDate();
}/*** 获取当前时间
*
*@paramformat 格式
*@paramdef 默认
*@paramdef 默认
*@return
*/
public staticString getNowAsString(String format, String def)
{return formatDateAsString(newDate(), format, def);
}/*** J
* 获取当前时间
*
*@returnlong*/
public static longgetNowAsLong()
{return (newDate()).getTime();
}/*** 将一个字符串的日期描述转换为java.util.Date对象
*
*@paramstrDate 字符串的日期描述
*@paramformat 字符串的日期格式,比如:“yyyy-MM-dd HH:mm”
*@return字符串转换的日期对象java.util.Date*/
public staticDate getDateFromString(String strDate, String format)
{if (strDate == null || strDate.trim().equals(""))
{returngetDefaultAsDate();
}
SimpleDateFormat formatter= newSimpleDateFormat(format);//formatter.setTimeZone(timeZone);
Date date;try{
date=formatter.parse(strDate);
}catch(ParseException e)
{
date=getDefaultAsDate();
}returndate;
}/*** J
* 格式化日期 默认 0000-00-00
*
*@paramdate
*@params
*@return带默认值的时间格式化字符串*/
public staticString formatDateAsString(Date date, String s, String def)
{
String ret=def;if (date != null && !"".equals(s))
{try{
ret= (newSimpleDateFormat(s)).format(date);
}catch(Exception e)
{
ret=def;
}
}returnret;
}/*** V
* 传入秒数,返回如 XX:XX:XX 的一串文字
*
*@paramsecond
*@return返回 XX:XX:XX 的文字*/
public static String getTimeAsString(intsecond)
{
String ret= "";int ss =second;int HH = 0;int mm = 0;
HH= ss / 60 / 60;if (HH > 0)
{
ss= ss - (HH * 60 * 60);if (HH >= 10)
ret= HH + ":";elseret= "0" + HH + ":";
}
mm= ss / 60;if (mm > 0)
{
ss= ss - (mm * 60);if (mm >= 10)
ret+= mm + ":";elseret+= "0" + mm + ":";
}else{
ret+= "00" + ":";
}if (ss >= 10)
ret+=ss;elseret+= "0" +ss;returnret;
}/*** V
* 传入一串时间文字如 XX:XX:XX,返回秒数
*
*@paramtime
*@return返回秒数*/
public static intgetStringAsSeord(String time)
{int ret = 0;if (time != null && !"".equals(time.trim()))
{try{
String[] times= time.trim().split(":");if (times.length == 3)
{
ret= ret + Integer.parseInt(times[0]) * 60 * 60; //时
ret = ret + Integer.parseInt(times[1]) * 60; //分
ret = ret + Integer.parseInt(times[2]); //秒
}else if (times.length == 2)
{
ret= ret + Integer.parseInt(times[0]) * 60; //分
ret = ret + Integer.parseInt(times[1]); //秒
}else if (times.length == 1)
{
ret= ret + Integer.parseInt(times[0]); //秒
}
}catch(Exception e)
{
ret= 0;
}
}returnret;
}/*** 得到几天前的时间
*@paramd
*@paramday
*@return
*/
public static Date getDateBefore(Date d,intday){
java.util.Calendar now=Calendar.getInstance();
now.setTime(d);
now.set(Calendar.DATE,now.get(Calendar.DATE)-day);returnnow.getTime();
}/*** 得到几天后的时间
*@paramd
*@paramday
*@return
*/
public static Date getDateAfter(Date d,intday){
Calendar now=Calendar.getInstance();
now.setTime(d);
now.set(Calendar.DATE,now.get(Calendar.DATE)+day);returnnow.getTime();
}
}