|
|
|
|
package com.manage.util;
|
|
|
|
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
|
|
|
|
import java.text.ParseException;
|
|
|
|
|
import java.text.ParsePosition;
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.util.Calendar;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
|
|
public class DateUtils {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Format String : yyyy-MM-dd HH:mm:ss
|
|
|
|
|
*/
|
|
|
|
|
public static final String DateFormat1 = "yyyy-MM-dd HH:mm:ss";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Format String : yyyy-MM-dd
|
|
|
|
|
*/
|
|
|
|
|
public static final String DateFormat2 = "yyyy-MM-dd";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Format String : yyyyMMdd
|
|
|
|
|
*/
|
|
|
|
|
public static final String DateFormat3 = "yyyyMMdd";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Format String : yyyyMMdd HHmmss
|
|
|
|
|
*/
|
|
|
|
|
public static final String DateFormat4 = "yyyyMMdd HHmmss";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Format String : yyyy-MM-dd HH:mm
|
|
|
|
|
*/
|
|
|
|
|
public static final String DateFormat5 = "yyyy-MM-dd HH:mm";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Format String : yyyyMMdd HH:mm
|
|
|
|
|
*/
|
|
|
|
|
public static final String DateFormat6 = "yyyyMMdd HH:mm";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Format String : yyyy年MM月dd日
|
|
|
|
|
*/
|
|
|
|
|
public static final String DateFormat7 = "yyyy年MM月dd日";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取当前时间
|
|
|
|
|
*
|
|
|
|
|
* @return Date对象
|
|
|
|
|
*/
|
|
|
|
|
public static Date getDate() {
|
|
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
|
|
return calendar.getTime();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 返回当前时间
|
|
|
|
|
*
|
|
|
|
|
* @param format 时间格式
|
|
|
|
|
* @return string 当前时间指定格式字符串
|
|
|
|
|
*/
|
|
|
|
|
public static String getDate(String format) {
|
|
|
|
|
return getStringDate(getDate(), format);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 按照固定格式化
|
|
|
|
|
*
|
|
|
|
|
* @param date Date
|
|
|
|
|
* @param method 时间格式
|
|
|
|
|
* @return 制定的时间格式
|
|
|
|
|
*/
|
|
|
|
|
public static String getStringDate(Date date, String method) {
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat(method);
|
|
|
|
|
String ret = null;
|
|
|
|
|
try {
|
|
|
|
|
ret = sdf.format(date);
|
|
|
|
|
} catch (Exception ex) {
|
|
|
|
|
ex.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取前几天或者后天时间
|
|
|
|
|
*
|
|
|
|
|
* @param date Date
|
|
|
|
|
* @param days 天数
|
|
|
|
|
* @return Date时间
|
|
|
|
|
*/
|
|
|
|
|
public static Date getDate(Date date, int days) {
|
|
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
|
|
calendar.setTime(date);
|
|
|
|
|
calendar.add(Calendar.DAY_OF_YEAR, days);
|
|
|
|
|
return calendar.getTime();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取前几天或者后天时间
|
|
|
|
|
*
|
|
|
|
|
* @param dateStr 'yyyyMMdd'
|
|
|
|
|
* @param days 天数
|
|
|
|
|
* @return Date时间
|
|
|
|
|
*/
|
|
|
|
|
public static Date getDate(String dateStr, int days) {
|
|
|
|
|
return getDate(getDate(dateStr, DateFormat3), days);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 传入String类型时间返回Date
|
|
|
|
|
*
|
|
|
|
|
* @param stringDate 时间
|
|
|
|
|
* @param method 格式
|
|
|
|
|
* @return 返回Date
|
|
|
|
|
*/
|
|
|
|
|
public static Date getDate(String stringDate, String method) {
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat(method);
|
|
|
|
|
Date ret = null;
|
|
|
|
|
try {
|
|
|
|
|
String integerDate = stringDate.replaceAll("/", "").replaceAll("年", "").replaceAll("月", "").replaceAll("日", "").replaceAll(":", ":");
|
|
|
|
|
ret = sdf.parse(integerDate);
|
|
|
|
|
} catch (Exception ex) {
|
|
|
|
|
ex.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static Date strToDateLong(String strDate) {
|
|
|
|
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
ParsePosition pos = new ParsePosition(0);
|
|
|
|
|
Date strtodate = formatter.parse(strDate, pos);
|
|
|
|
|
return strtodate;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 获取两时间差的天数
|
|
|
|
|
*
|
|
|
|
|
* @param beginDate 开始日期
|
|
|
|
|
* @param endDate 结束日期
|
|
|
|
|
* @return 天数
|
|
|
|
|
*/
|
|
|
|
|
public static int getDayCount(Date beginDate, Date endDate) {
|
|
|
|
|
int count = 0;
|
|
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
|
|
calendar.setTime(beginDate);
|
|
|
|
|
while (calendar.getTime().before(endDate)) {
|
|
|
|
|
count++;
|
|
|
|
|
calendar.add(Calendar.DAY_OF_YEAR, 1);
|
|
|
|
|
}
|
|
|
|
|
return count;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 当前日期的前一个月
|
|
|
|
|
*
|
|
|
|
|
* @param data
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static String getLastMonth(Date data) {
|
|
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
|
|
Date date = new Date(System.currentTimeMillis());
|
|
|
|
|
calendar.setTime(date);
|
|
|
|
|
calendar.add(Calendar.MONTH, -1);
|
|
|
|
|
date = calendar.getTime();
|
|
|
|
|
return DateUtils.getStringDate(date, DateUtils.DateFormat2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 当前日期的后一个月
|
|
|
|
|
*
|
|
|
|
|
* @param data
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static String getNextMonth(Date data) {
|
|
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
|
|
Date date = new Date(System.currentTimeMillis());
|
|
|
|
|
calendar.setTime(date);
|
|
|
|
|
calendar.add(Calendar.MONTH, 1);
|
|
|
|
|
date = calendar.getTime();
|
|
|
|
|
return DateUtils.getStringDate(date, DateUtils.DateFormat2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 传入LONG 返回 时分秒
|
|
|
|
|
* @param diff
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static String LongToString(long diff)
|
|
|
|
|
{
|
|
|
|
|
String showtime = "";
|
|
|
|
|
long oneSecond = 1000;
|
|
|
|
|
long oneMinute = oneSecond * 60;
|
|
|
|
|
long oneHour = oneMinute * 60;
|
|
|
|
|
long hours = diff / oneHour;
|
|
|
|
|
diff -= hours * oneHour;
|
|
|
|
|
long minutes = diff / oneMinute;
|
|
|
|
|
diff -= minutes * oneMinute;
|
|
|
|
|
long seconds = diff / oneSecond;
|
|
|
|
|
if (hours > 0){ showtime += hours + "时";}
|
|
|
|
|
if (minutes > 0){ showtime += minutes + "分";}
|
|
|
|
|
if (seconds > 0){ showtime += seconds + "秒";}
|
|
|
|
|
return showtime;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 判断当前时间是否在begin和end时间段内
|
|
|
|
|
*
|
|
|
|
|
**/
|
|
|
|
|
public static Boolean IsDateExist(String startTime,String endTime){
|
|
|
|
|
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
|
|
|
|
|
Date now = null;
|
|
|
|
|
Date begin = null;
|
|
|
|
|
Date end = null;
|
|
|
|
|
try {
|
|
|
|
|
now = df.parse(df.format(new Date()));
|
|
|
|
|
begin = df.parse(startTime);
|
|
|
|
|
end = df.parse(endTime);
|
|
|
|
|
} catch (ParseException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
Calendar nowTime = Calendar.getInstance();
|
|
|
|
|
nowTime.setTime(now);
|
|
|
|
|
Calendar beginTime = Calendar.getInstance();
|
|
|
|
|
beginTime.setTime(begin);
|
|
|
|
|
Calendar endTime1 = Calendar.getInstance();
|
|
|
|
|
endTime1.setTime(end);
|
|
|
|
|
if (nowTime.before(endTime1) && nowTime.after(beginTime)) {
|
|
|
|
|
return true;
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 计算两时间小时h差
|
|
|
|
|
*
|
|
|
|
|
**/
|
|
|
|
|
public static Double getHourDiff(Date startTime,Date endTime){
|
|
|
|
|
long ms = endTime.getTime() - startTime.getTime();
|
|
|
|
|
if (ms < 0){ return 0d;}
|
|
|
|
|
return Math.floor(ms/1000/60/60);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|