java 日期時間工具類
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;/**
- 日期時間工具類
- 功能:
- 獲取當前日期 時間 ,獲取年月日時分秒毫秒
- 格式化日期時間
- 日期時間加上或減少n天、n月、n年
- 計算日期相差的天數
- @author Administrator
- @Date Jul 19, 2008
- @Time 9:47:53 AM
@version 1.0 */ public class DateUtil {
public static Date date = null;
public static DateFormat dateFormat = null;
public static Calendar calendar = null;
/**
英文簡寫(默認)如:2010-12-01 */ public static String FORMAT_SHORT = "yyyy-MM-dd";
/**
英文全稱 如:2010-12-01 23:15:06 */ public static String FORMAT_LONG = "yyyy-MM-dd HH:mm:ss";
/**
精確到毫秒的完整時間 如:yyyy-MM-dd HH:mm:ss.S */ public static String FORMAT_FULL = "yyyy-MM-dd HH:mm:ss.S";
/**
中文簡寫 如:2010年12月01日 */ public static String FORMAT_SHORT_CN = "yyyy年MM月dd";
/**
中文全稱 如:2010年12月01日 23時15分06秒 */ public static String FORMAT_LONG_CN = "yyyy年MM月dd日 HH時mm分ss秒";
/**
精確到毫秒的完整中文時間 */ public static String FORMAT_FULL_CN = "yyyy年MM月dd日 HH時mm分ss秒SSS毫秒";
/**
獲得默認的 date pattern */ public static String getDatePattern() { return FORMAT_LONG; }
/**
- 根據預設格式返回當前日期
@return */ public static String getNow() { return format(new Date()); }
/**
- 根據用戶格式返回當前日期
- @param format
@return */ public static String getNow(String format) { return format(new Date(), format); }
/**
- 使用預設格式格式化日期
- @param date
@return */ public static String format(Date date) { return format(date, getDatePattern()); }
/**
- 使用用戶格式格式化日期
- @param date
- 日期
- @param pattern
- 日期格式
@return */ public static String format(Date date, String pattern) { String returnValue = ""; if (date != null) {
SimpleDateFormat df = new SimpleDateFormat(pattern); returnValue = df.format(date);
} return (returnValue); }
/**
- 使用預設格式提取字符串日期
- @param strDate
- 日期字符串
@return */ public static Date parse(String strDate) { return parse(strDate, getDatePattern()); }
/**
- 使用用戶格式提取字符串日期
- @param strDate
- 日期字符串
- @param pattern
- 日期格式
@return */ public static Date parse(String strDate, String pattern) { SimpleDateFormat df = new SimpleDateFormat(pattern); try {
return df.parse(strDate);
} catch (ParseException e) {
e.printStackTrace(); return null;
} }
/**
- 在日期上增加數個整月
- @param date
- 日期
- @param n
- 要增加的月數
@return */ public static Date addMonth(Date date, int n) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.MONTH, n); return cal.getTime(); }
/**
- 在日期上增加天數
- @param date
- 日期
- @param n
- 要增加的天數
@return */ public static Date addDay(Date date, int n) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.DATE, n); return cal.getTime(); }
/**
- 獲取距現在某一小時的時刻
- @param format
- 格式化時間的格式
- @param h
- 距現在的小時 例如:h=-1為上一個小時,h=1為下一個小時
@return / public static String getpreHour(String format, int h) { SimpleDateFormat sdf = new SimpleDateFormat(format); Date date = new Date(); date.setTime(date.getTime() + h 60 60 1000); return sdf.format(date); }
/**
獲取時間戳 */ public static String getTimeString() { SimpleDateFormat df = new SimpleDateFormat(FORMAT_FULL); Calendar calendar = Calendar.getInstance(); return df.format(calendar.getTime()); }
/**
- 獲取日期年份
- @param date
- 日期
@return */ public static String getYear(Date date) { return format(date).substring(0, 4); }
/**
- 功能描述:返回月
- @param date
- Date 日期
@return 返回月份 */ public static int getMonth(Date date) { calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.MONTH) + 1; }
/**
- 功能描述:返回日
- @param date
- Date 日期
@return 返回日份 */ public static int getDay(Date date) { calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.DAY_OF_MONTH); }
/**
- 功能描述:返回小
- @param date
- 日期
@return 返回小時 */ public static int getHour(Date date) { calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.HOUR_OF_DAY); }
/**
- 功能描述:返回分
- @param date
- 日期
@return 返回分鐘 */ public static int getMinute(Date date) { calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.MINUTE); }
/**
- 返回秒鐘
- @param date
- Date 日期
@return 返回秒鐘 */ public static int getSecond(Date date) { calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.SECOND); }
/**
- 功能描述:返回毫
- @param date
- 日期
@return 返回毫 */ public static long getMillis(Date date) { calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.getTimeInMillis(); }
/**
- 按默認格式的字符串距離今天的天數
- @param date
- 日期字符串
@return */ public static int countDays(String date) { long t = Calendar.getInstance().getTime().getTime(); Calendar c = Calendar.getInstance(); c.setTime(parse(date)); long t1 = c.getTime().getTime(); return (int) (t / 1000 - t1 / 1000) / 3600 / 24; }
/**
- 按用戶格式字符串距離今天的天數
- @param date
- 日期字符串
- @param format
- 日期格式
@return */ public static int countDays(String date, String format) { long t = Calendar.getInstance().getTime().getTime(); Calendar c = Calendar.getInstance(); c.setTime(parse(date, format)); long t1 = c.getTime().getTime(); return (int) (t / 1000 - t1 / 1000) / 3600 / 24; }
public static void main(String[] args) {
System.out.println(DateUtil.getNow()); }
}</pre>