自己去建一个时间工具类
下面这些是类中的方法:
public static final String ISO_DATE_FORMAT = "yyyyMMdd";
public static final String ISO_EXPANDED_DATE_FORMAT = "yyyy-MM-dd";
private static final TimeZone GMT = TimeZone.getTimeZone("GMT");
/**
* yyyy-MM-dd HH:mm:ss
*/
public static final String DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
private static boolean LENIENT_DATE = false;
两个时间(yyyy-MM-dd格式)相差多少天
public static final int daysBetween(Date early, Date late) {
java.util.GregorianCalendar calst = new java.util.GregorianCalendar();
java.util.GregorianCalendar caled = new java.util.GregorianCalendar();
calst.setTime(early);
caled.setTime(late);
calst.set(java.util.GregorianCalendar.HOUR_OF_DAY, 0);
calst.set(java.util.GregorianCalendar.MINUTE, 0);
calst.set(java.util.GregorianCalendar.SECOND, 0);
caled.set(java.util.GregorianCalendar.HOUR_OF_DAY, 0);
caled.set(java.util.GregorianCalendar.MINUTE, 0);
caled.set(java.util.GregorianCalendar.SECOND, 0);
int days = ((int) (caled.getTime().getTime() / 1000) - (int) (calst.getTime().getTime() / 1000)) / 3600 / 24;
return days;
}
/**
* 两个时间(yyyy-MM-dd格式)相差多少天
* @param smdate
* @param bdate
* @return
* @throws ParseException
*/
public static int daysBetween(String smdate, String bdate){
long between_days = 0;
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(sdf.parse(smdate));
long time1 = cal.getTimeInMillis();
cal.setTime(sdf.parse(bdate));
long time2 = cal.getTimeInMillis();
if(time2>time1){
between_days = (time2 - time1) / (1000 * 3600 * 24);
}else{
between_days = (time1 - time2) / (1000 * 3600 * 24);
}
} catch (Exception e) {
e.getStackTrace();
}
return Integer.parseInt(String.valueOf(between_days));
}
/** 字符串日期格式
* @param dateText
* @param format
* @param lenient
* @return
*/
public static Date stringToDate(String dateText, String format, boolean lenient) {
if (dateText == null) {
return null;
}
DateFormat df = null;
try {
if (format == null) {
df = new SimpleDateFormat();
} else {
df = new SimpleDateFormat(format);
}
df.setLenient(false);
return df.parse(dateText);
} catch (ParseException e) {
return null;
}
}
/**
* 字符串日期格式
*
* @param dateString
* @param format
* @return
*/
public static Date stringToDate(String dateString, String format) {
return stringToDate(dateString, format, LENIENT_DATE);
}
/**
* 字符串日期格式
*
* @param dateString
* @return
*/
public static Date stringToDate(String dateString) {
return stringToDate(dateString, ISO_EXPANDED_DATE_FORMAT, LENIENT_DATE);
}
/**
* 日期格式转字符串
*
* @param date
* @param pattern
* @return
*/
public static String dateToString(Date date, String pattern) {
if (date == null) {
return null;
}
try {
SimpleDateFormat sfDate = new SimpleDateFormat(pattern);
sfDate.setLenient(false);
return sfDate.format(date);
} catch (Exception e) {
return null;
}
}
/**
* @param date
* @return
*/
public static String dateToString(Date date) {
return dateToString(date, ISO_EXPANDED_DATE_FORMAT);
}
/**
* @param date
* @return
*/
public static String dateToStringWithTime(Date date) {
return dateToString(date, DATETIME_PATTERN);
}
/**
获取当前时间
* @return
*/
public static Date getCurrentDateTime() {
java.util.Calendar calNow = java.util.Calendar.getInstance();
java.util.Date dtNow = calNow.getTime();
return dtNow;
}
/**
* @param pattern
* @return
*/
public static String getCurrentDateString(String pattern) {
return dateToString(getCurrentDateTime(), pattern);
}
/**
* @return
*/
public static String getCurrentDateString() {
return dateToString(getCurrentDateTime(), ISO_EXPANDED_DATE_FORMAT);
}
/**
* 日期按天数增加
* @param date
* @param days
* @return
*/
public static Date dateIncreaseByDay(Date date, int days) {
Calendar cal = GregorianCalendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, days);
return cal.getTime();
}
/**
* 日期按月份增加
* @param date
* @param mnt
* @return
*/
public static Date dateIncreaseByMonth(Date date, int mnt) {
Calendar cal = GregorianCalendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MONTH, mnt);
return cal.getTime();
}
/**
* 日期按年份增加
* @param date
* @param mnt
* @return
*/
public static Date dateIncreaseByYear(Date date, int mnt) {
Calendar cal = GregorianCalendar.getInstance();
cal.setTime(date);
cal.add(Calendar.YEAR, mnt);
return cal.getTime();
}
/**
* 日期按年份增加
* @param date
* @param mnt
* @return
*/
public static Date addYear(Date date, int count) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(1, count);
return c.getTime();
}
/**
* 日期按天数增加
* @param date
* @param days
* @return
*/
public static String dateIncreaseByDay(String date, int days) {
return dateIncreaseByDay(date, ISO_DATE_FORMAT, days);
}
/**
* 增加月份
* @param date
* @param days
* @return
*/
public static Date addMonth(Date date, int count) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(2, count);
return c.getTime();
}
/**
* 增加天数
* @param date
* @param days
* @return
*/
public static Date addDay(Date date, int count) {
return new Date(date.getTime() + 86400000L * (long) count);
}
/**
* 日期按天份增加
* @param date
* @param fmt
* @param days
* @return
*/
public static String dateIncreaseByDay(String date, String fmt, int days) {
return dateIncrease(date, fmt, Calendar.DATE, days);
}