时间工具类

时间加减

/**
* @param addNum:可以为负数代表减去
* @param type:Calendar.YEAR
* @return
*/
public static Date addTime(Date date,int addNum, int type) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    calendar.add(type, addNum);
    return calendar.getTime();
}

获取时间所在月份的天数

//import java.text.SimpleDateFormat;
//import java.util.Calendar;
//import java.util.Date;
public static int getMonthDays(Date date) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    calendar.add(Calendar.MONTH, 1);
    calendar.set(Calendar.DAY_OF_MONTH, 0);
    SimpleDateFormat format = new SimpleDateFormat("dd");
    String format1 = format.format(calendar.getTime());
    return Integer.parseInt(format1);
}

获取时间所在周的周一

//import org.apache.commons.lang.time.DateUtils;
//import java.time.LocalDate;
//import java.time.ZoneId;
//import java.util.Date;
public static Date getWeekStart(Date date) {
    LocalDate localDate = date.toInstant()
        .atZone(ZoneId.systemDefault())
        .toLocalDate();
    int week = localDate.getDayOfWeek().getValue();
    return DateUtils.addDays(date, (week - 1) * -1);
}

获取时间所在周的周日

//import org.apache.commons.lang.time.DateUtils;
//import java.time.LocalDate;
//import java.time.ZoneId;
//import java.util.Date;
public static Date getWeekEnd(Date date) {
    LocalDate localDate = date.toInstant()
        .atZone(ZoneId.systemDefault())
        .toLocalDate();
    int week = localDate.getDayOfWeek().getValue();
    return DateUtils.addDays(date, week - 1);
}

获取时间所在月的月初

//import org.apache.commons.lang.time.DateUtils;
//import java.time.LocalDate;
//import java.time.ZoneId;
//import java.util.Date;
public static Date getMonthStart(Date date) {
    LocalDate localDate = date.toInstant()
        .atZone(ZoneId.systemDefault())
        .toLocalDate();
    int month = localDate.getDayOfMonth();
    return DateUtils.addDays(date, (month - 1) * -1);
}

获取时间所在月的月末

//import org.apache.commons.lang.time.DateUtils;
//import java.time.LocalDate;
//import java.time.ZoneId;
//import java.util.Date;
public static Date getMonthEnd(Date date) {
    LocalDate localDate = date.toInstant()
        .atZone(ZoneId.systemDefault())
        .toLocalDate();
    int month = localDate.getDayOfMonth();
    return DateUtils.addDays(date, ParamUtils.getMonthDays(date) - month);
}

获取时间所在的年份

//import java.time.LocalDate;
//import java.time.ZoneId;
//import java.util.Date;
public static String getYear(Date date) {
    LocalDate localDate = date.toInstant()
        .atZone(ZoneId.systemDefault())
        .toLocalDate();
    return localDate.getYear() + "";
}

获取两个时间差值

/**
 * 计算两个时间的差值
 * @param min
 * @param max
 * @return  x天x小时x分钟x秒
 */
public static String calDateInterval(Date min, Date max) {
	long maxTime = max.getTime();
	long minTime = min.getTime();
	long timeLag = maxTime - minTime;
	String result = "";
	//天
	long day = timeLag / (24 * 60 * 60 * 1000);
	if (day > 0) {
		result = day + "天";
	}
	//小时
	long hour = (timeLag / (60 * 60 * 1000) - day * 24);
	if (hour > 0) {
		result = hour + "小时";
	}
	//分钟
	long minute = ((timeLag / (60 * 1000)) - day * 24 * 60 - hour * 60);
	if (minute > 0) {
		result = minute + "分钟";
	}
	//秒,顺便说一下,1秒 = 1000毫秒
	long second = (timeLag / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - minute * 60);
	if (second > 0) {
		result = second + "秒";
	}
	return result;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值