|
Posted on 2011-05-05 18:29 云云 阅读(931) 评论(0) 编辑 收藏
package com.ali.luna.commons.util;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/** *//**
* 鏃ユ湡鏃堕棿宸ュ叿绫伙紝杩涜鍚勭鏃ユ湡鏃堕棿鏍煎紡鐨勮浆鍖栦互鍙婃牸寮忓寲
*
* @author 鏉庢尟鍗�
* @version v1.0.0
*/
public class DateTimeUtil {
///
//瀹氫箟鏃堕棿鏃ユ湡鏄剧ず鏍煎紡
///
private final static String DATE_FORMAT = "yyyy-MM-dd";
private final static String DATE_FORMAT_CN = "yyyy骞碝M鏈坉d鏃�;
private final static String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
private final static String TIME_FORMAT_CN = "yyyy骞碝M鏈坉d鏃�HH:mm:ss";
private final static String MONTH_FORMAT = "yyyy-MM";
private final static String DAY_FORMAT = "yyyyMMdd";
//private final static String TIME_FORMAT_MILLI = "yyyy-MM-dd HH:mm:ss.SSS";
/** *//**
* 鍙栧緱褰撳墠绯荤粺鏃堕棿锛岃繑鍥瀓ava.util.Date绫诲瀷
* @see java.util.Date
* @return java.util.Date 杩斿洖鏈嶅姟鍣ㄥ綋鍓嶇郴缁熸椂闂�
*/
public static java.util.Date getCurrDate() {
return new java.util.Date();
}
/** *//**
* 鍙栧緱褰撳墠绯荤粺鏃堕棿鎴�
* @see java.sql.Timestamp
* @return java.sql.Timestamp 绯荤粺鏃堕棿鎴�
*/
public static java.sql.Timestamp getCurrTimestamp() {
return new java.sql.Timestamp(System.currentTimeMillis());
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勬棩鏈燂紝鏍煎紡涓簓yyy-MM-dd锛屽2006-02-15
* @param currDate 瑕佹牸寮忓寲鐨勬棩鏈�
* @see #getFormatDate(java.util.Date, String)
* @return String 杩斿洖鏍煎紡鍖栧悗鐨勬棩鏈燂紝榛樿鏍煎紡涓轰负yyyy-MM-dd锛屽2006-02-15
*/
public static String getFormatDate(java.util.Date currDate) {
return getFormatDate(currDate, DATE_FORMAT);
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勬棩鏈燂紝鏍煎紡涓簓yyy-MM-dd锛屽2006-02-15
* @param currDate 瑕佹牸寮忓寲鐨勬棩鏈�
* @see #getFormatDate(java.util.Date)
* @return Date 杩斿洖鏍煎紡鍖栧悗鐨勬棩鏈燂紝榛樿鏍煎紡涓轰负yyyy-MM-dd锛屽2006-02-15
*/
public static Date getFormatDateToDate(java.util.Date currDate) {
return getFormatDate(getFormatDate(currDate));
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勬棩鏈燂紝鏍煎紡涓簓yyy骞碝M鏈坉d鏃ワ紝濡�006骞�2鏈�5鏃�
* @param currDate 瑕佹牸寮忓寲鐨勬棩鏈�
* @see #getFormatDate(java.util.Date, String)
* @return String 杩斿洖鏍煎紡鍖栧悗鐨勬棩鏈燂紝榛樿鏍煎紡涓簓yyy骞碝M鏈坉d鏃ワ紝濡�006骞�2鏈�5鏃�
*/
public static String getFormatDate_CN(java.util.Date currDate) {
return getFormatDate(currDate, DATE_FORMAT_CN);
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勬棩鏈燂紝鏍煎紡涓簓yyy骞碝M鏈坉d鏃ワ紝濡�006骞�2鏈�5鏃�
* @param currDate 瑕佹牸寮忓寲鐨勬棩鏈�
* @see #getFormatDate_CN(String)
* @return Date 杩斿洖鏍煎紡鍖栧悗鐨勬棩鏈燂紝榛樿鏍煎紡涓簓yyy骞碝M鏈坉d鏃ワ紝濡�006骞�2鏈�5鏃�
*/
public static Date getFormatDateToDate_CN(java.util.Date currDate) {
return getFormatDate_CN(getFormatDate_CN(currDate));
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勬棩鏈燂紝鏍煎紡涓簓yyy-MM-dd锛屽2006-02-15
* @param currDate 瑕佹牸寮忓寲鐨勬棩鏈�
* @see #getFormatDate(String, String)
* @return Date 杩斿洖鏍煎紡鍖栧悗鐨勬棩鏈燂紝榛樿鏍煎紡涓簓yyy-MM-dd锛屽2006-02-15
*/
public static Date getFormatDate(String currDate) {
return getFormatDate(currDate, DATE_FORMAT);
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勬棩鏈燂紝鏍煎紡涓簓yyy骞碝M鏈坉d鏃ワ紝濡�006骞�2鏈�5鏃�
* @param currDate 瑕佹牸寮忓寲鐨勬棩鏈�
* @see #getFormatDate(String, String)
* @return 杩斿洖鏍煎紡鍖栧悗鐨勬棩鏈燂紝榛樿鏍煎紡涓簓yyy骞碝M鏈坉d鏃ワ紝濡�006骞�2鏈�5鏃�
*/
public static Date getFormatDate_CN(String currDate) {
return getFormatDate(currDate, DATE_FORMAT_CN);
}
/** *//**
* 鏍规嵁鏍煎紡寰楀埌鏍煎紡鍖栧悗鐨勬棩鏈�
* @param currDate 瑕佹牸寮忓寲鐨勬棩鏈�
* @param format 鏃ユ湡鏍煎紡锛屽yyyy-MM-dd
* @see java.text.SimpleDateFormat#format(java.util.Date)
* @return String 杩斿洖鏍煎紡鍖栧悗鐨勬棩鏈燂紝鏍煎紡鐢卞弬鏁�code>format</code>瀹氫箟锛屽yyyy-MM-dd锛屽2006-02-15
*/
public static String getFormatDate(java.util.Date currDate, String format) {
SimpleDateFormat dtFormatdB = null;
try {
dtFormatdB = new SimpleDateFormat(format);
return dtFormatdB.format(currDate);
} catch (Exception e) {
dtFormatdB = new SimpleDateFormat(DATE_FORMAT);
return dtFormatdB.format(currDate);
}
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勬椂闂达紝鏍煎紡涓簓yyy-MM-dd HH:mm:ss锛屽2006-02-15 15:23:45
* @param currDate 瑕佹牸寮忓寲鐨勬椂闂�
* @see #getFormatDateTime(java.util.Date, String)
* @return String 杩斿洖鏍煎紡鍖栧悗鐨勬椂闂达紝榛樿鏍煎紡涓簓yyy-MM-dd HH:mm:ss锛屽2006-02-15 15:23:45
*/
public static String getFormatDateTime(java.util.Date currDate) {
return getFormatDateTime(currDate, TIME_FORMAT);
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勬椂闂达紝鏍煎紡涓簓yyy-MM-dd HH:mm:ss锛屽2006-02-15 15:23:45
* @param currDate 瑕佹牸寮忕幆鐨勬椂闂�
* @see #getFormatDateTime(String)
* @return Date 杩斿洖鏍煎紡鍖栧悗鐨勬椂闂达紝榛樿鏍煎紡涓簓yyy-MM-dd HH:mm:ss锛屽2006-02-15 15:23:45
*/
public static Date getFormatDateTimeToTime(java.util.Date currDate) {
return getFormatDateTime(getFormatDateTime(currDate));
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勬椂闂达紝鏍煎紡涓簓yyy-MM-dd HH:mm:ss锛屽2006-02-15 15:23:45
* @param currDate 瑕佹牸寮忓寲鐨勬椂闂�
* @see #getFormatDateTime(String, String)
* @return Date 杩斿洖鏍煎紡鍖栧悗鐨勬椂闂达紝榛樿鏍煎紡涓簓yyy-MM-dd HH:mm:ss锛屽2006-02-15 15:23:45
*/
public static Date getFormatDateTime(String currDate) {
return getFormatDateTime(currDate, TIME_FORMAT);
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勬椂闂达紝鏍煎紡涓簓yyy骞碝M鏈坉d鏃�HH:mm:ss锛屽2006骞�2鏈�5鏃�15:23:45
* @param currDate 瑕佹牸寮忓寲鐨勬椂闂�
* @see #getFormatDateTime(java.util.Date, String)
* @return String 杩斿洖鏍煎紡鍖栧悗鐨勬椂闂达紝榛樿鏍煎紡涓簓yyy骞碝M鏈坉d鏃�HH:mm:ss锛屽2006骞�2鏈�5鏃�15:23:45
*/
public static String getFormatDateTime_CN(java.util.Date currDate) {
return getFormatDateTime(currDate, TIME_FORMAT_CN);
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勬椂闂达紝鏍煎紡涓簓yyy骞碝M鏈坉d鏃�HH:mm:ss锛屽2006骞�2鏈�5鏃�15:23:45
* @param currDate 瑕佹牸寮忓寲鐨勬椂闂�
* @see #getFormatDateTime_CN(String)
* @return Date 杩斿洖鏍煎紡鍖栧悗鐨勬椂闂达紝榛樿鏍煎紡涓簓yyy骞碝M鏈坉d鏃�HH:mm:ss锛屽2006骞�2鏈�5鏃�15:23:45
*/
public static Date getFormatDateTimeToTime_CN(java.util.Date currDate) {
return getFormatDateTime_CN(getFormatDateTime_CN(currDate));
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勬椂闂达紝鏍煎紡涓簓yyy骞碝M鏈坉d鏃�HH:mm:ss锛屽2006骞�2鏈�5鏃�15:23:45
* @param currDate 瑕佹牸寮忓寲鐨勬椂闂�
* @see #getFormatDateTime(String, String)
* @return Date 杩斿洖鏍煎紡鍖栧悗鐨勬椂闂达紝榛樿鏍煎紡涓簓yyy骞碝M鏈坉d鏃�HH:mm:ss锛屽2006骞�2鏈�5鏃�15:23:45
*/
public static Date getFormatDateTime_CN(String currDate) {
return getFormatDateTime(currDate, TIME_FORMAT_CN);
}
/** *//**
* 鏍规嵁鏍煎紡寰楀埌鏍煎紡鍖栧悗鐨勬椂闂�
* @param currDate 瑕佹牸寮忓寲鐨勬椂闂�
* @param format 鏃堕棿鏍煎紡锛屽yyyy-MM-dd HH:mm:ss
* @see java.text.SimpleDateFormat#format(java.util.Date)
* @return String 杩斿洖鏍煎紡鍖栧悗鐨勬椂闂达紝鏍煎紡鐢卞弬鏁�code>format</code>瀹氫箟锛屽yyyy-MM-dd HH:mm:ss
*/
public static String getFormatDateTime(java.util.Date currDate, String format) {
SimpleDateFormat dtFormatdB = null;
try {
dtFormatdB = new SimpleDateFormat(format);
return dtFormatdB.format(currDate);
} catch (Exception e) {
dtFormatdB = new SimpleDateFormat(TIME_FORMAT);
return dtFormatdB.format(currDate);
}
}
/** *//**
* 鏍规嵁鏍煎紡寰楀埌鏍煎紡鍖栧悗鐨勬棩鏈�
* @param currDate 瑕佹牸寮忓寲鐨勬棩鏈�
* @param format 鏃ユ湡鏍煎紡锛屽yyyy-MM-dd
* @see java.text.SimpleDateFormat#parse(java.lang.String)
* @return Date 杩斿洖鏍煎紡鍖栧悗鐨勬棩鏈燂紝鏍煎紡鐢卞弬鏁�code>format</code>瀹氫箟锛屽yyyy-MM-dd锛屽2006-02-15
*/
public static Date getFormatDate(String currDate, String format) {
SimpleDateFormat dtFormatdB = null;
try {
dtFormatdB = new SimpleDateFormat(format);
return dtFormatdB.parse(currDate);
} catch (Exception e) {
dtFormatdB = new SimpleDateFormat(DATE_FORMAT);
try {
return dtFormatdB.parse(currDate);
} catch (Exception ex){}
}
return null;
}
/** *//**
* 鏍规嵁鏍煎紡寰楀埌鏍煎紡鍖栧悗鐨勬椂闂�
* @param currDate 瑕佹牸寮忓寲鐨勬椂闂�
* @param format 鏃堕棿鏍煎紡锛屽yyyy-MM-dd HH:mm:ss
* @see java.text.SimpleDateFormat#parse(java.lang.String)
* @return Date 杩斿洖鏍煎紡鍖栧悗鐨勬椂闂达紝鏍煎紡鐢卞弬鏁�code>format</code>瀹氫箟锛屽yyyy-MM-dd HH:mm:ss
*/
public static Date getFormatDateTime(String currDate, String format) {
SimpleDateFormat dtFormatdB = null;
try {
dtFormatdB = new SimpleDateFormat(format);
return dtFormatdB.parse(currDate);
} catch (Exception e) {
dtFormatdB = new SimpleDateFormat(TIME_FORMAT);
try {
return dtFormatdB.parse(currDate);
} catch (Exception ex){}
}
return null;
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勫綋鍓嶇郴缁熸棩鏈燂紝鏍煎紡涓簓yyy-MM-dd锛屽2006-02-15
* @see #getFormatDate(java.util.Date)
* @return String 杩斿洖鏍煎紡鍖栧悗鐨勫綋鍓嶆湇鍔″櫒绯荤粺鏃ユ湡锛屾牸寮忎负yyyy-MM-dd锛屽2006-02-15
*/
public static String getCurrDateStr() {
return getFormatDate(getCurrDate());
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勫綋鍓嶇郴缁熸椂闂达紝鏍煎紡涓簓yyy-MM-dd HH:mm:ss锛屽2006-02-15 15:23:45
* @see #getFormatDateTime(java.util.Date)
* @return String 杩斿洖鏍煎紡鍖栧悗鐨勫綋鍓嶆湇鍔″櫒绯荤粺鏃堕棿锛屾牸寮忎负yyyy-MM-dd HH:mm:ss锛屽2006-02-15 15:23:45
*/
public static String getCurrDateTimeStr() {
return getFormatDateTime(getCurrDate());
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勫綋鍓嶇郴缁熸棩鏈燂紝鏍煎紡涓簓yyy骞碝M鏈坉d鏃ワ紝濡�006骞�2鏈�5鏃�
* @see #getFormatDate(java.util.Date, String)
* @return String 杩斿洖褰撳墠鏈嶅姟鍣ㄧ郴缁熸棩鏈燂紝鏍煎紡涓簓yyy骞碝M鏈坉d鏃ワ紝濡�006骞�2鏈�5鏃�
*/
public static String getCurrDateStr_CN() {
return getFormatDate(getCurrDate(), DATE_FORMAT_CN);
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勫綋鍓嶇郴缁熸椂闂达紝鏍煎紡涓簓yyy骞碝M鏈坉d鏃�HH:mm:ss锛屽2006骞�2鏈�5鏃�15:23:45
* @see #getFormatDateTime(java.util.Date, String)
* @return String 杩斿洖鏍煎紡鍖栧悗鐨勫綋鍓嶆湇鍔″櫒绯荤粺鏃堕棿锛屾牸寮忎负yyyy骞碝M鏈坉d鏃�HH:mm:ss锛屽2006骞�2鏈�5鏃�15:23:45
*/
public static String getCurrDateTimeStr_CN() {
return getFormatDateTime(getCurrDate(), TIME_FORMAT_CN);
}
/** *//**
* 寰楀埌绯荤粺褰撳墠鏃ユ湡鐨勫墠鎴栬�鍚庡嚑澶�
* @param iDate 濡傛灉瑕佽幏寰楀墠鍑犲ぉ鏃ユ湡锛岃鍙傛暟涓鸿礋鏁帮紱
* 濡傛灉瑕佽幏寰楀悗鍑犲ぉ鏃ユ湡锛岃鍙傛暟涓烘鏁�
* @see java.util.Calendar#add(int, int)
* @return Date 杩斿洖绯荤粺褰撳墠鏃ユ湡鐨勫墠鎴栬�鍚庡嚑澶�
*/
public static Date getDateBeforeOrAfter(int iDate) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, iDate);
return cal.getTime();
}
/** *//**
* 寰楀埌鏃ユ湡鐨勫墠鎴栬�鍚庡嚑澶�
* @param iDate 濡傛灉瑕佽幏寰楀墠鍑犲ぉ鏃ユ湡锛岃鍙傛暟涓鸿礋鏁帮紱
* 濡傛灉瑕佽幏寰楀悗鍑犲ぉ鏃ユ湡锛岃鍙傛暟涓烘鏁�
* @see java.util.Calendar#add(int, int)
* @return Date 杩斿洖鍙傛暟<code>curDate</code>瀹氫箟鏃ユ湡鐨勫墠鎴栬�鍚庡嚑澶�
*/
public static Date getDateBeforeOrAfter(Date curDate, int iDate) {
Calendar cal = Calendar.getInstance();
cal.setTime(curDate);
cal.add(Calendar.DAY_OF_MONTH, iDate);
return cal.getTime();
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勬湀浠斤紝鏍煎紡涓簓yyy-MM锛屽2006-02
* @param currDate 瑕佹牸寮忓寲鐨勬棩鏈�
* @see #getFormatDate(java.util.Date, String)
* @return String 杩斿洖鏍煎紡鍖栧悗鐨勬湀浠斤紝鏍煎紡涓簓yyy-MM锛屽2006-02
*/
public static String getFormatMonth(java.util.Date currDate) {
return getFormatDate(currDate, MONTH_FORMAT);
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勬棩锛屾牸寮忎负yyyyMMdd锛屽20060210
* @param currDate 瑕佹牸寮忓寲鐨勬棩鏈�
* @see #getFormatDate(java.util.Date, String)
* @return String 杩斿洖鏍煎紡鍖栧悗鐨勬棩锛屾牸寮忎负yyyyMMdd锛屽20060210
*/
public static String getFormatDay(java.util.Date currDate) {
return getFormatDate(currDate, DAY_FORMAT);
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勫綋鏈堢涓�ぉ锛屾牸寮忎负yyyy-MM-dd锛屽2006-02-01
* @param currDate 瑕佹牸寮忓寲鐨勬棩鏈�
* @see java.util.Calendar#getMinimum(int)
* @see #getFormatDate(java.util.Date, String)
* @return String 杩斿洖鏍煎紡鍖栧悗鐨勫綋鏈堢涓�ぉ锛屾牸寮忎负yyyy-MM-dd锛屽2006-02-01
*/
public static String getFirstDayOfMonth(){
Calendar cal = Calendar.getInstance();
int firstDay = cal.getMinimum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, firstDay);
return getFormatDate(cal.getTime(),DATE_FORMAT);
}
/** *//**
* 寰楀埌鏍煎紡鍖栧悗鐨勫綋鏈堢涓�ぉ锛屾牸寮忎负yyyy-MM-dd锛屽2006-02-01
* @param currDate 瑕佹牸寮忓寲鐨勬棩鏈�
* @see java.util.Calendar#getMinimum(int)
* @see #getFormatDate(java.util.Date, String)
* @return String 杩斿洖鏍煎紡鍖栧悗鐨勫綋鏈堢涓�ぉ锛屾牸寮忎负yyyy-MM-dd锛屽2006-02-01
*/
public static String getFirstDayOfMonth(Date currDate){
Calendar cal = Calendar.getInstance();
cal.setTime(currDate);
int firstDay = cal.getMinimum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, firstDay);
return getFormatDate(cal.getTime(),DATE_FORMAT);
}
/** *//**
* 寰楀埌鏃ユ湡鐨勫墠鎴栬�鍚庡嚑灏忔椂
* @param iHour 濡傛灉瑕佽幏寰楀墠鍑犲皬鏃舵棩鏈燂紝璇ュ弬鏁颁负璐熸暟锛�
* 濡傛灉瑕佽幏寰楀悗鍑犲皬鏃舵棩鏈燂紝璇ュ弬鏁颁负姝f暟
* @see java.util.Calendar#add(int, int)
* @return Date 杩斿洖鍙傛暟<code>curDate</code>瀹氫箟鏃ユ湡鐨勫墠鎴栬�鍚庡嚑灏忔椂
*/
public static Date getDateBeforeOrAfterHours(Date curDate, int iHour) {
Calendar cal = Calendar.getInstance();
cal.setTime(curDate);
cal.add(Calendar.HOUR_OF_DAY, iHour);
return cal.getTime();
}
/**//*
* 寰楀埌鍙傛暟鎸囧畾鏃ユ湡姣斿綋鍓嶆椂闂寸殑绉掓暟
*/
public static int getIntervalSeconds(Date endDate){
return getIntervalSeconds(endDate, new Date());
}
/**//*
* 寰楀埌鍙傛暟鎸囧畾鏃ユ湡姣斿綋鍓嶆椂闂寸殑绉掓暟
*/
public static int getIntervalSeconds(Date endDate, Date startDate){
Calendar end = Calendar.getInstance();
end.setTime(endDate);
Calendar start = Calendar.getInstance();
start.setTime(startDate);
return (int)((end.getTimeInMillis() - start.getTimeInMillis()) / 1000);
}
}
|