public class TimeUtil {
public static final String YYYYMMDD = "yyyyMMdd";
public static final String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
public static final String YYYYMMDD_HHMMSS = "yyyyMMdd HHmmss";
public static Date now() {
Calendar calendar = Calendar.getInstance();
return calendar.getTime();
}
/**
* 当前时间n秒之前的时间
*
* @param seconds
* @return
*/
public static Date timeBeforeNow(int seconds) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.SECOND, -seconds);
return calendar.getTime();
}
/**
* 当前时间n秒之后的时间
*
* @param seconds
* @return
*/
public static Date timeAfterNow(int seconds) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.SECOND, seconds);
return calendar.getTime();
}
/**
* 获取n秒后的时间
*
* @param date
* @param seconds
* @return
*/
public static Date timeAfterSeconds(Date date, int seconds) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.SECOND, seconds);
return calendar.getTime();
}
/**
* 获取n天后的时间
*
* @param date
* @param days
* @return
*/
public static Date timeAfterDays(Date date, int days) {
return timeAfterSeconds(date, days * 24 * 3600);
}
/**
* 指定时间的凌晨0点0分0秒
*
* @param date 指定时间
* @return
*/
public static Date zeroTimeOfDay(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
return c.getTime();
}
/**
* 当天 00:00:00
*
* @return
*/
public static Date zeroTimeOfDay() {
return zeroTimeOfDay(new Date());
}
/**
* 得到本月的第一天
*
* @return
*/
public static Date getMonthFirstDay() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH,
calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
return calendar.getTime();
}
/**
* 得到本月的最后一天
*
* @return
*/
public static Date getMonthLastDay() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH,
calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return calendar.getTime();
}
/**
* 当天23点59分59秒
*
* @param date
* @return
*/
public static Date endTimeOfDay(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.HOUR_OF_DAY, 23);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND, 59);
return c.getTime();
}
/**
* 当天0点0分0秒
*
* @param date
* @return
*/
public static Date zeroTimeOfHour(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
return c.getTime();
}
/**
* 对时间进行格式化 yyyy-MM-dd HH:mm:ss
*
* @param date
* @return
*/
public static String timeFormat(Date date) {
return timeFormat(date, "yyyy-MM-dd HH:mm:ss");
}
/**
* 当前时间 yyyy-MM-dd HH:mm:ss 格式的字符串
*
* @return
*/
public static String nowString() {
return timeFormat(now());
}
/**
* 对时间进行格式化:年月日 yyyyMMdd
*
* @param date
* @return
*/
public static String timeFormat_yyyyMMdd(Date date) {
return timeFormat(date, "yyyyMMdd");
}
/**
* 对时间进行格式化
*
* @param date
* @param format
* @return
*/
public static String timeFormat(Date date, String format) {
if (date == null) {
return "";
}
SimpleDateFormat formatter = new SimpleDateFormat(format);
return formatter.format(date);
}
/**
* 通过时间字符串获取Date
*
* @param timeStr 要求'yyyy-MM-dd HH:mm:ss'格式
* @return
*/
public static Date parse(String timeStr) {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
return dateFormat.parse(timeStr);
} catch (ParseException e) {
return null;
}
}
public static Date parseFormat(String timeStr, String format) {
DateFormat dateFormat = new SimpleDateFormat(format);
try {
return dateFormat.parse(timeStr);
} catch (ParseException e) {
return null;
}
}
/**
* 将字符串格式yyyyMMdd的字符串转为日期,格式"yyyy-MM-dd"
*
* @param date 日期字符串
* @return 返回格式化的日期
* @throws ParseException 分析时意外地出现了错误异常
*/
public static String strToDateFormat(String date) throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
formatter.setLenient(false);
Date newDate = formatter.parse(date);
formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return formatter.format(newDate);
}
/**
* 计算两个日期之间相差的天数
*
* @param smdate 较小的时间
* @param bdate 较大的时间
* @return 相差天数
* @throws ParseException
*/
public static int daysBetween(Date smdate, Date bdate) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
smdate = sdf.parse(sdf.format(smdate));
bdate = sdf.parse(sdf.format(bdate));
} catch (ParseException e) {
return 0;
}
Calendar cal = Calendar.getInstance();
cal.setTime(smdate);
long time1 = cal.getTimeInMillis();
cal.setTime(bdate);
long time2 = cal.getTimeInMillis();
long between_days = (time2 - time1) / (1000 * 3600 * 24);
return (int) between_days;
}
}
时间处理工具类
于 2022-08-29 13:37:34 首次发布