You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

250 lines
6.6 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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);
}
}