DateUtil

import org.apache.commons.lang3.StringUtils;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateUtil {
	/**
	 * 取得当月天数
	 * */
	public static int getCurrentMonthLastDay()
	{
		Calendar a = Calendar.getInstance();
		a.set(Calendar.DATE, 1);//把日期设置为当月第一天
		a.roll(Calendar.DATE, -1);//日期回滚一天,也就是最后一天
		int maxDate = a.get(Calendar.DATE);
		return maxDate;
	}

	/**
	 * 得到指定月的天数
	 * */
	public static int getMonthLastDay(int year, int month)
	{
		Calendar a = Calendar.getInstance();
		a.set(Calendar.YEAR, year);
		a.set(Calendar.MONTH, month - 1);
		a.set(Calendar.DATE, 1);//把日期设置为当月第一天
		a.roll(Calendar.DATE, -1);//日期回滚一天,也就是最后一天
		int maxDate = a.get(Calendar.DATE);
		return maxDate;
	}
	
	/**
	 * 功能说明:得到昨天的日期
	 * @param date
	 * @return
	 */
	public static Date getYesterday(Date date){
		Date yesDate = new Date(date.getTime() - 24*60*60*1000);
		return yesDate;
	}
	
	/**
	 * 功能说明:得到N天前的日期
	 * @param date 
	 * @param day  往前推的天数
	 * @return
	 */
	public static Date getOldDayByNum(Date date, Long day){
		Date yesDate = new Date(date.getTime() - day*24*60*60*1000);
		return yesDate;
	}
	
	/**
	 * 功能说明:得到当前日期字符串
	 * @param format 日期格式,默认"yyyy-MM-dd HH:mm:ss"
	 * @return
	 */
	public static String getNowDateString(String format){
		if(StringUtils.isEmpty(format)){
			format = "yyyy-MM-dd HH:mm:ss";
		}
		Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(date); 
	}
	
	/**
	 * 功能说明:按给定的日期转字符串
	 * @param date  给定的日期
	 * @param format 日期格式,默认"yyyy-MM-dd HH:mm:ss"
	 * @return
	 */
	public static String getDateString(Date date, String format){
		if(StringUtils.isEmpty(format)){
			format = "yyyy-MM-dd HH:mm:ss";
		}
		if(date == null){
			return "";
		}
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(date); 
	}
	
	/**
	 * 功能说明:字符串转Date
	 * @param dateStr  日期字符串
	 * @param format 日期格式,默认"yyyy-MM-dd HH:mm:ss"
	 * @return
	 */
	public static Date DateFormatString(String dateStr, String format){
		if(StringUtils.isEmpty(format)){
			format = "yyyy-MM-dd HH:mm:ss";
		}
		SimpleDateFormat sdf = new SimpleDateFormat(format);
        Date date;
		try {
			date = sdf.parse(dateStr);
		} catch (Exception e) {
			date = new Date();
		}
        return date;
	}

	/**
	 * 将时间转换为 yyyy-mm-dd 00:00:00/yyyy-mm-dd 23:59:59
	 * @param originTime  日期字符串 yyyy-mm-dd
	 * @param type 日期类型 0是添加开始时间后缀  1添加结束时间后缀
	 */
	public static Date transferSelectedTime(Date originTime, int type){
		String t1 = DateUtil.getDateString(originTime,"yyyy-MM-dd");
		if(type==0){
			t1+=" 00:00:00";
		}else if(type==1){
			t1+=" 23:59:59";
		}
		Date result = DateUtil.DateFormatString(t1,"yyyy-MM-dd HH:mm:ss");
		return result;
	}

	/**
	 * 将时间转换为 yyyy-mm-dd 00:00:00/yyyy-mm-dd 23:59:59
	 * @param originTime  日期字符串 yyyy-mm-dd
	 * @param type 日期类型 0是添加开始时间后缀  1添加结束时间后缀
	 */
	public static String transferSelectedTimeString(Date originTime, int type){
		String t1 = DateUtil.getDateString(originTime,"yyyy-MM-dd");
		if(type==0){
			t1+=" 00:00:00";
		}else if(type==1){
			t1+=" 23:59:59";
		}
		return t1;
	}

	public static String getDateDiffStringNostyle(Date date1, Date date2){
		
		StringBuffer sb = new StringBuffer();
		long l = date2.getTime()-date1.getTime();
		if (l < 0){
			sb.append("0天0小时0分0秒");
			return sb.toString();
		}
		long day = l/(24*60*60*1000);
		long hour = (l/(60*60*1000)-day*24);
		long min = ((l/(60*1000))-day*24*60-hour*60);
		long s = (l/1000-day*24*60*60-hour*60*60-min*60);
		sb.append(day).append("天").append(hour).append("小时")
			.append(min).append("分").append(s).append("秒");
		return sb.toString();
	}
	
	public static String getDateDiffString(Date date1, Date date2){
		
		StringBuffer sb = new StringBuffer();
		long l = date2.getTime()-date1.getTime();
		String s1 = "<font style=\"font-size: 14px;\" color=\"red\">";
		String s2 = "</font>";
		if (l < 0){
			sb.append(s1).append(0).append(s2).append("天")
			.append(s1).append(0).append(s2).append("小时")
			.append(s1).append(0).append(s2).append("分")
			.append(s1).append(0).append(s2).append("秒");
			return sb.toString();
		}
		long day = l/(24*60*60*1000);
		long hour = (l/(60*60*1000)-day*24);
		long min = ((l/(60*1000))-day*24*60-hour*60);
		long s = (l/1000-day*24*60*60-hour*60*60-min*60);
		sb.append(s1).append(day).append(s2).append("天")
			.append(s1).append(hour).append(s2).append("小时")
			.append(s1).append(min).append(s2).append("分")
			.append(s1).append(s).append(s2).append("秒");
		return sb.toString();
	}
	
	public static String getDateDiffString(Date date1, Object obj){
		StringBuffer sb = new StringBuffer();
		Date date2 = null;
		String s1 = "<font style=\"font-size: 14px;\" color=\"red\">";
		String s2 = "</font>";
		try{
			date2 = (Date) obj;
		}catch(Exception e){
			sb.append(s1).append(0).append(s2).append("天")
			.append(s1).append(0).append(s2).append("小时")
			.append(s1).append(0).append(s2).append("分")
			.append(s1).append(0).append(s2).append("秒");
			return sb.toString();
		}
		long l = date2.getTime()-date1.getTime();
		if (l < 0){
			sb.append(s1).append(0).append(s2).append("天")
			.append(s1).append(0).append(s2).append("小时")
			.append(s1).append(0).append(s2).append("分")
			.append(s1).append(0).append(s2).append("秒");
			return sb.toString();
		}
		long day = l/(24*60*60*1000);
		long hour = (l/(60*60*1000)-day*24);
		long min = ((l/(60*1000))-day*24*60-hour*60);
		long s = (l/1000-day*24*60*60-hour*60*60-min*60);
		sb.append(s1).append(day).append(s2).append("天")
			.append(s1).append(hour).append(s2).append("小时")
			.append(s1).append(min).append(s2).append("分")
			.append(s1).append(s).append(s2).append("秒");
		return sb.toString();
	}
	
	public static String getDateDiffString2(Date date2){
		Date date1 = new Date();
		StringBuffer sb = new StringBuffer();
		long l = date2.getTime()-date1.getTime();
		String s1 = "<font style=\"font-size: 14px;\" color=\"red\">";
		String s2 = "</font>";
		if (l < 0){
			sb.append(s1).append(0).append(s2).append("天")
			.append(s1).append(0).append(s2).append("小时")
			.append(s1).append(0).append(s2).append("分")
			.append(s1).append(0).append(s2).append("秒");
			return sb.toString();
		}
		long day = l/(24*60*60*1000);
		long hour = (l/(60*60*1000)-day*24);
		long min = ((l/(60*1000))-day*24*60-hour*60);
		long s = (l/1000-day*24*60*60-hour*60*60-min*60);
		sb.append(s1).append(day).append(s2).append("天")
			.append(s1).append(hour).append(s2).append("小时")
			.append(s1).append(min).append(s2).append("分")
			.append(s1).append(s).append(s2).append("秒");
		return sb.toString();
	}

	public static Date addDay(Date date, int dayNo){
		Calendar calendar  = Calendar.getInstance();
		calendar.setTime(date);
		calendar.add(Calendar.DATE, dayNo);
		return calendar.getTime();
	}

    /**
	 *  转换时间并将时间转换为 yyyy-mm-dd 00:00:00/yyyy-mm-dd 23:59:59
	 */
	public static Date transferStartOrEndTime(Date date,int amout,int type){
		Date start = DateUtils.round(DateUtils.addDays(date, amout), Calendar.DATE);
		Date startOrEndTime = DateUtil.transferSelectedTime(start,type);
		return startOrEndTime;
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值