JAVA最常用时间工具类DateUtil

package util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 日期工具类
 * 不进行校验参数date和format的合法性
 * 默认数据按照正确格式处理
 */
public class DateUtil {
	/**格式:周一、周二、周三、周四、周五、周六、周日*/
	private final static String[] week = 
			{"周日", "周一", "周二", "周三", "周四", "周五", "周六"};
	
	/**格式:星期一、星期二、星期三、星期四、星期五、星期六、星期日*/
	private final static String[] week2 = 
			{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
	
	/**格式:礼拜一、礼拜二、礼拜三、礼拜四、礼拜五、礼拜六、礼拜天*/
	private final static String[] week3 = 
			{"礼拜天", "礼拜一", "礼拜二", "礼拜三", "礼拜四", "礼拜五", "礼拜六"};
	
	/**时间格式:yy,示例:21*/
	private static String yy = "yy";
	
	/**时间格式:MM,例如当前时间:2021-02-01 返回示例:02*/
	private static String MM = "MM";
	
	/**时间格式:dd,例如当前时间:2021-02-01 返回示例:01*/
	private static String dd = "dd";
	
	/**时间格式:yyyy,示例:2021*/
	private static String yyyy = yy + "yy";
	
	/**时间格式:yyyyMM,示例:202101*/
	private static String yyyyMM = yyyy + "MM";
	
	/**时间格式:yyyyMMdd,示例:20210101*/
	private static String yyyyMMdd = yyyyMM + "dd";
	
	/**时间格式:yyyyMMddHHmm,示例:202101011201*/
	private static String yyyyMMddHHmm = yyyyMMdd + "HHmm";
	
	/**时间格式:yyyyMMdd,示例:20210101120101*/
	private static String yyyyMMddHHmmss = yyyyMMddHHmm + "ss";
	
	/**时间格式:yyyy-MM-dd,示例:2021-01-01*/
	private static String yyyy_MM = "yyyy-MM";

	/**时间格式:yyyy-MM-dd,示例:2021-01-01*/
	private static String yyyy_MM_dd = yyyy_MM + "-dd";
	
	/**时间格式:yyyy-MM-dd HH:mm,示例:2021-01-01 12:01*/
	private static String yyyy_MM_ddHHmm = yyyy_MM_dd + " HH:mm";
	
	/**时间格式:yyyy-MM-dd,示例:2021-01-01 12:00:01*/
	private static String yyyy_MM_ddHHmmss = yyyy_MM_ddHHmm + ":ss";
	
	/**时间格式:yyyy/MM/dd,示例:2021/01/01*/
	private static String yyyy_MM2 = "yyyy/MM";
	
	/**时间格式:yyyy/MM/dd,示例:2021/01/01*/
	private static String yyyy_MM_dd2 = yyyy_MM2 + "/dd";
	
	/**时间格式:yyyy/MM/dd HH:mm,示例:2021/01/01 12:01*/
	private static String yyyy_MM_ddHHmm2 = yyyy_MM_dd2 + " HH:mm";
	
	/**时间格式:yyyy/MM/dd,示例:2021/01/01 12:00:01*/
	private static String yyyy_MM_ddHHmmss2 = yyyy_MM_ddHHmm2 + ":ss";

	private static SimpleDateFormat newSimpleDateFormat(String format) {
		return new SimpleDateFormat(format);
	}
	
	/**
	 * 根据传入的date,格式化为yy,示例:21
	 * @param date
	 * @return
	 */
	public static String getYear(Date date) {
		SimpleDateFormat sdf = newSimpleDateFormat(yy);
		return sdf.format(date);
	}
	
	/**
	 * 根据传入的date,格式化为yyyy,示例:2021
	 * @param date
	 * @return
	 */
	public static String getFullYear(Date date) {
		SimpleDateFormat sdf = newSimpleDateFormat(yyyy);
		return sdf.format(date);
	}
	
	/**
	 * 根据传入的date,格式化为MM,示例:12
	 * @param date
	 * @return
	 */
	public static String getMonth(Date date) {
		SimpleDateFormat sdf = newSimpleDateFormat(MM);
		return sdf.format(date);
	}
	
	/**
	 * 根据传入的date,格式化为dd,示例:01
	 * @param date
	 * @return
	 */
	public static String getDay(Date date) {
		SimpleDateFormat sdf = newSimpleDateFormat(dd);
		return sdf.format(date);
	}
	
	/**
	 * 根据传入的date,格式化为yyyyMM,示例:202101
	 * @param date
	 * @return
	 */
	public static String yyyyMM(Date date) {
		SimpleDateFormat sdf = newSimpleDateFormat(yyyyMM);
		return sdf.format(date);
	}
	
	/**
	 * 根据传入的date,格式化为yyyyMMdd,示例:20210101
	 * @param date
	 * @return
	 */
	public static String yyyyMMdd(Date date) {
		SimpleDateFormat sdf = newSimpleDateFormat(yyyyMMdd);
		return sdf.format(date);
	}
	
	/**
	 * 根据传入的date,格式化为yyyyMMddHHmm,示例:202101011201
	 * @param date
	 * @return
	 */
	public static String yyyyMMddHHmm(Date date) {
		SimpleDateFormat sdf = newSimpleDateFormat(yyyyMMddHHmm);
		return sdf.format(date);
	}
	
	/**
	 * 根据传入的date,格式化为yyyyMMdd,示例:20210101120101
	 * @param date
	 * @return
	 */
	public static String yyyyMMddHHmmss(Date date) {
		SimpleDateFormat sdf = newSimpleDateFormat(yyyyMMddHHmmss);
		return sdf.format(date);
	}
	
	/**
	 * 根据传入的date,格式化为yyyy-MM,示例:2021-01
	 * @param date
	 * @return
	 */
	public static String yyyy_MM(Date date) {
		SimpleDateFormat sdf = newSimpleDateFormat(yyyy_MM);
		return sdf.format(date);
	}
	
	/**
	 * 根据传入的date,格式化为yyyy-MM-dd,示例:2021-01-01
	 * @param date
	 * @return
	 */
	public static String yyyy_MM_dd(Date date) {
		SimpleDateFormat sdf = newSimpleDateFormat(yyyy_MM_dd);
		return sdf.format(date);
	}
	
	/**
	 * 根据传入的date,格式化为yyyy-MM-dd HH:mm,示例:2021-01-01 12:01
	 * @param date
	 * @return
	 */
	public static String yyyy_MM_ddHHmm(Date date) {
		SimpleDateFormat sdf = newSimpleDateFormat(yyyy_MM_ddHHmm);
		return sdf.format(date);
	}
	
	/**
	 * 根据传入的date,格式化为yyyy-MM-dd HH:mm:ss
	 * 示例:2021-01-01 12:01:01
	 * @param date
	 * @return
	 */
	public static String yyyy_MM_ddHHmmss(Date date) {
		SimpleDateFormat sdf = newSimpleDateFormat(yyyy_MM_ddHHmmss);
		return sdf.format(date);
	}
	
	/**
	 * 根据传入的date,格式化为yyyy/MM
	 * 示例:2021/01
	 * @param date
	 * @return
	 */
	public static String yyyy_MM2(Date date) {
		SimpleDateFormat sdf = newSimpleDateFormat(yyyy_MM2);
		return sdf.format(date);
	}
	
	/**
	 * 根据传入的date,格式化为yyyy/MM/dd
	 * 示例:2021/01/01
	 * @param date
	 * @return
	 */
	public static String yyyy_MM_dd2(Date date) {
		SimpleDateFormat sdf = newSimpleDateFormat(yyyy_MM_dd2);
		return sdf.format(date);
	}
	
	/**
	 * 根据传入的date,格式化为yyyy/MM/dd HH:mm
	 * 示例:2021/01/01 12:01
	 * @param date
	 * @return
	 */
	public static String yyyy_MM_ddHHmm2(Date date) {
		SimpleDateFormat sdf = newSimpleDateFormat(yyyy_MM_ddHHmm2);
		return sdf.format(date);
	}
	
	/**
	 * 根据传入的date,格式化为yyyy/MM/dd HH:mm:ss
	 * 示例:2021/01/01 12:01:01
	 * @param date
	 * @return
	 */
	public static String yyyy_MM_ddHHmmss2(Date date) {
		SimpleDateFormat sdf = newSimpleDateFormat(yyyy_MM_ddHHmmss2);
		return sdf.format(date);
	}

	/**
	 * 自定义格式化时间格式,返回自定义的时间格式
	 * @param date
	 * @param format
	 * @return
	 */
	public static String dateToString4Custom(Date date, String format) {
		SimpleDateFormat sdf = newSimpleDateFormat(format);
		return sdf.format(date);
	}

	/**
	 * 传入时间戳,返回时间字符串,返回示例:yyyyMM 202101
	 * @param timeMillis
	 * @return
	 */
	public static String timeMillis2String4yyyyMM(long timeMillis) {
		Calendar c = Calendar.getInstance();
		c.setTimeInMillis(timeMillis);
		return yyyyMM(c.getTime());

	}
	
	/**
	 * 传入时间戳,返回时间字符串,返回示例:yyyyMMdd 20210101
	 * @param timeMillis
	 * @return
	 */
	public static String timeMillis2String4yyyyMMdd(long timeMillis) {
		Calendar c = Calendar.getInstance();
		c.setTimeInMillis(timeMillis);
		return yyyyMMdd(c.getTime());

	}
	
	/**
	 * 传入时间戳,返回时间字符串,返回示例:yyyyMMddHHmm 202101010101
	 * @param timeMillis
	 * @return
	 */
	public static String timeMillis2String4yyyyMMddHHmm(long timeMillis) {
		Calendar c = Calendar.getInstance();
		c.setTimeInMillis(timeMillis);
		return yyyyMMddHHmm(c.getTime());
		
	}
	/**
	 * 传入时间戳,返回时间字符串,返回示例:yyyyMMddHHmmss 20210101010101
	 * @param timeMillis
	 * @return
	 */
	public static String timeMillis2String4yyyyMMddHHmmss(long timeMillis) {
		Calendar c = Calendar.getInstance();
		c.setTimeInMillis(timeMillis);
		return yyyyMMddHHmmss(c.getTime());
		
	}
	/**
	 * 传入时间戳,返回时间字符串,返回示例:yyyy-MM 2021-01
	 * @param timeMillis
	 * @return
	 */
	public static String timeMillis2String4yyyy_MM(long timeMillis) {
		Calendar c = Calendar.getInstance();
		c.setTimeInMillis(timeMillis);
		return yyyy_MM(c.getTime());
		
	}
	/**
	 * 传入时间戳,返回时间字符串,返回示例:yyyy-MM-dd 2021-01-01
	 * @param timeMillis
	 * @return
	 */
	public static String timeMillis2String4yyyy_MM_dd(long timeMillis) {
		Calendar c = Calendar.getInstance();
		c.setTimeInMillis(timeMillis);
		return yyyy_MM_dd(c.getTime());
		
	}
	/**
	 * 传入时间戳,返回时间字符串,返回示例:yyyy-MM-dd HH:mm 2021-01-01 12:01
	 * @param timeMillis
	 * @return
	 */
	public static String timeMillis2String4yyyy_MM_ddHHmm(long timeMillis) {
		Calendar c = Calendar.getInstance();
		c.setTimeInMillis(timeMillis);
		return yyyy_MM_ddHHmm(c.getTime());
		
	}
	/**
	 * 传入时间戳,返回时间字符串,返回示例:yyyy-MM-dd HH:mm:ss 2021-01-01 12:01:01
	 * @param timeMillis
	 * @return
	 */
	public static String timeMillis2String4yyyy_MM_ddHHmmss(long timeMillis) {
		Calendar c = Calendar.getInstance();
		c.setTimeInMillis(timeMillis);
		return yyyy_MM_ddHHmmss(c.getTime());
		
	}
	/**
	 * 传入时间戳,返回时间字符串,返回示例:yyyy/MM 2021/01
	 * @param timeMillis
	 * @return
	 */
	public static String timeMillis2String4yyyy_MM2(long timeMillis) {
		Calendar c = Calendar.getInstance();
		c.setTimeInMillis(timeMillis);
		return yyyy_MM2(c.getTime());
		
	}
	/**
	 * 传入时间戳,返回时间字符串,返回示例:yyyy/MM/dd 2021/01/01
	 * @param timeMillis
	 * @return
	 */
	public static String timeMillis2String4yyyy_MM_dd2(long timeMillis) {
		Calendar c = Calendar.getInstance();
		c.setTimeInMillis(timeMillis);
		return yyyy_MM_dd2(c.getTime());
		
	}
	/**
	 * 传入时间戳,返回时间字符串,返回示例:yyyy/MM/dd HH:mm 2021/01/01 12:01
	 * @param timeMillis
	 * @return
	 */
	public static String timeMillis2String4yyyy_MM_ddHHmm2(long timeMillis) {
		Calendar c = Calendar.getInstance();
		c.setTimeInMillis(timeMillis);
		return yyyy_MM_ddHHmm2(c.getTime());
		
	}
	/**
	 * 传入时间戳,返回时间字符串,返回示例:yyyy/MM/dd HH:mm:ss 2021/01/01 12:01:01
	 * @param timeMillis
	 * @return
	 */
	public static String timeMillis2String4yyyy_MM_ddHHmmss2(long timeMillis) {
		Calendar c = Calendar.getInstance();
		c.setTimeInMillis(timeMillis);
		return yyyy_MM_ddHHmmss2(c.getTime());
		
	}

	/**
	 * 根据传入的格式化时间转换成时间戳
	 * @param timeMillis
	 * @return
	 */
	public static long dateString2Millis4yyyy_MM_dd(String dateTime) {
		if (dateTime == null || dateTime.equals("")) {
			return 0l;
		}
		Date date;
		try {
			date = newSimpleDateFormat(yyyy_MM_dd).parse(dateTime);
		} catch (ParseException e) {
			date = null;
			e.printStackTrace();
		}
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.getTimeInMillis();
	}
	
	/**
	 * 根据传入的格式化时间转换成时间戳
	 * @param timeMillis
	 * @return
	 */
	public static long dateString2Millis4yyyy_MM_ddHHmm(String dateTime) {
		if (dateTime == null || dateTime.equals("")) {
			return 0l;
		}
		Date date;
		try {
			date = newSimpleDateFormat(yyyy_MM_ddHHmm).parse(dateTime);
		} catch (ParseException e) {
			date = null;
			e.printStackTrace();
		}
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.getTimeInMillis();
	}
	
	/**
	 * 根据传入的格式化时间转换成时间戳
	 * @param timeMillis
	 * @return
	 */
	public static long dateString2Millis4yyyy_MM_ddHHmmss(String dateTime) {
		if (dateTime == null || dateTime.equals("")) {
			return 0l;
		}
		Date date;
		try {
			date = newSimpleDateFormat(yyyy_MM_ddHHmmss).parse(dateTime);
		} catch (ParseException e) {
			date = null;
			e.printStackTrace();
		}
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.getTimeInMillis();
	}
	/**
	 * 根据传入的格式化时间转换成时间戳
	 * @param timeMillis
	 * @return
	 */
	public static long dateString2Millis4yyyy_MM_dd2(String dateTime) {
		if (dateTime == null || dateTime.equals("")) {
			return 0l;
		}
		Date date;
		try {
			date = newSimpleDateFormat(yyyy_MM_dd2).parse(dateTime);
		} catch (ParseException e) {
			date = null;
			e.printStackTrace();
		}
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.getTimeInMillis();
	}
	
	/**
	 * 根据传入的格式化时间转换成时间戳
	 * @param timeMillis
	 * @return
	 */
	public static long dateString2Millis4yyyy_MM_ddHHmm2(String dateTime) {
		if (dateTime == null || dateTime.equals("")) {
			return 0l;
		}
		Date date;
		try {
			date = newSimpleDateFormat(yyyy_MM_ddHHmm2).parse(dateTime);
		} catch (ParseException e) {
			date = null;
			e.printStackTrace();
		}
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.getTimeInMillis();
	}
	
	/**
	 * 根据传入的格式化时间转换成时间戳
	 * @param timeMillis
	 * @return
	 */
	public static long dateString2Millis4yyyy_MM_ddHHmmss2(String dateTime) {
		if (dateTime == null || dateTime.equals("")) {
			return 0l;
		}
		Date date;
		try {
			date = newSimpleDateFormat(yyyy_MM_ddHHmmss2).parse(dateTime);
		} catch (ParseException e) {
			date = null;
			e.printStackTrace();
		}
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.getTimeInMillis();
	}
	/**
	 * 根据传入的格式化时间转换成时间戳
	 * @param timeMillis
	 * @return
	 */
	public static long dateString2Millis4yyyyMMdd(String dateTime) {
		if (dateTime == null || dateTime.equals("")) {
			return 0l;
		}
		Date date;
		try {
			date = newSimpleDateFormat(yyyyMMdd).parse(dateTime);
		} catch (ParseException e) {
			date = null;
			e.printStackTrace();
		}
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.getTimeInMillis();
	}
	
	/**
	 * 根据传入的格式化时间转换成时间戳
	 * @param timeMillis
	 * @return
	 */
	public static long dateString2Millis4yyyyMMddHHmm(String dateTime) {
		if (dateTime == null || dateTime.equals("")) {
			return 0l;
		}
		Date date;
		try {
			date = newSimpleDateFormat(yyyyMMddHHmm).parse(dateTime);
		} catch (ParseException e) {
			date = null;
			e.printStackTrace();
		}
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.getTimeInMillis();
	}
	
	/**
	 * 根据传入的格式化时间转换成时间戳
	 * @param timeMillis
	 * @return
	 */
	public static long dateString2Millis4yyyyMMddHHmmss(String dateTime) {
		if (dateTime == null || dateTime.equals("")) {
			return 0l;
		}
		Date date;
		try {
			date = newSimpleDateFormat(yyyyMMddHHmmss).parse(dateTime);
		} catch (ParseException e) {
			date = null;
			e.printStackTrace();
		}
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.getTimeInMillis();
	}

	/**
	 * 获取当前时间
	 * 示例:yyyyMMdd 20210101
	 * @return
	 */
	public static String getNowDateyyyyMMdd() {
		Date date = new Date();
		return yyyyMMdd(date);
	}
	
	/**
	 * 获取当前时间
	 * 示例:yyyyMMddHHmm 202101011201
	 * @return
	 */
	public static String getNowDateyyyyMMddHHmm() {
		Date date = new Date();
		return yyyyMMddHHmm(date);
	}
	
	/**
	 * 获取当前时间
	 * 示例:yyyyMMddHHmm 202101011201
	 * @return
	 */
	public static String getNowDateyyyyMMddHHmmss() {
		Date date = new Date();
		return yyyyMMddHHmmss(date);
	}
	/**
	 * 获取当前时间
	 * 示例:yyyy-MM-dd 2021-01-01
	 * @return
	 */
	public static String getNowDateyyyy_MM_dd() {
		Date date = new Date();
		return yyyy_MM_dd(date);
	}
	
	/**
	 * 获取当前时间
	 * 示例:yyyy-MM-dd HH:mm 2021-01-01 12:01
	 * @return
	 */
	public static String getNowDateyyyy_MM_ddHHmm() {
		Date date = new Date();
		return yyyy_MM_ddHHmm(date);
	}
	
	/**
	 * 获取当前时间
	 * 示例:yyyy-MM-dd HH:mm:ss 2021-01-01 12:01:01
	 * @return
	 */
	public static String getNowDateyyyy_MM_ddHHmmss() {
		Date date = new Date();
		return yyyy_MM_ddHHmmss(date);
	}
	/**
	 * 获取当前时间
	 * 示例:yyyy/MM/dd 2021/01/01
	 * @return
	 */
	public static String getNowDateyyyy_MM_dd2() {
		Date date = new Date();
		return yyyy_MM_dd2(date);
	}
	
	/**
	 * 获取当前时间
	 * 示例:yyyy/MM/dd HH:mm 2021/01/01 12:01
	 * @return
	 */
	public static String getNowDateyyyy_MM_ddHHmm2() {
		Date date = new Date();
		return yyyy_MM_ddHHmm2(date);
	}
	
	/**
	 * 获取当前时间
	 * 示例:yyyy/MM/dd HH:mm:ss 2021/01/01 12:01:01
	 * @return
	 */
	public static String getNowDateyyyy_MM_ddHHmmss2() {
		Date date = new Date();
		return yyyy_MM_ddHHmmss2(date);
	}

	/**
	 * 返回指定时间的自定义星期格式数据
	 * 例如:date=2021-01-01 
	 *     week={"周日", "周一", "周二", "周三", "周四", "周五", "周六"}
	 *     则返回"周五"
	 * 其中week数组中的值是自定义的
	 * @param date
	 * @param week
	 * @return
	 */
	public static String getWeekStr2(Date date, String[] week) {
		Calendar cal = Calendar.getInstance();
		cal.setTime(date);
		return week[cal.get(Calendar.DAY_OF_WEEK)];
	}

	/**
	 * 根据指定时间,
	 * 返回{"周日", "周一", "周二", "周三", "周四", "周五", "周六"}数组中的一个
	 * @param date
	 * @return
	 */
	public static String getWeekStr(Date date) {
		Calendar cal = Calendar.getInstance();
		cal.setTime(date);
		return week[cal.get(Calendar.DAY_OF_WEEK)];
	}
	
	/**
	 * 根据指定时间,
	 * 返回{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}数组中的一个
	 * @param date
	 * @return
	 */
	public static String getWeek2Str(Date date) {
		Calendar cal = Calendar.getInstance();
		cal.setTime(date);
		return week2[cal.get(Calendar.DAY_OF_WEEK)];
	}
	
	/**
	 * 根据指定时间,
	 * 返回{"礼拜天", "礼拜一", "礼拜二", "礼拜三", "礼拜四", "礼拜五", "礼拜六"}数组中的一个
	 * @param date
	 * @return
	 */
	public static String getWeek3Str(Date date) {
		Calendar cal = Calendar.getInstance();
		cal.setTime(date);
		return week3[cal.get(Calendar.DAY_OF_WEEK)];
	}
	
	/**
	 * 获取当前时间week
	 * 返回{"周日", "周一", "周二", "周三", "周四", "周五", "周六"}数组中的一个
	 * @return
	 */
	public static String getNowDate2Week() {
		Date date = new Date();
		return getWeekStr(date);
	}
	
	/**
	 * 获取当前时间week
	 * 返回{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}数组中的一个
	 * @return
	 */
	public static String getNowDate2Week2() {
		Date date = new Date();
		return getWeek2Str(date);
	}
	
	/**
	 * 获取当前时间week
	 * 返回{"礼拜天", "礼拜一", "礼拜二", "礼拜三", "礼拜四", "礼拜五", "礼拜六"}数组中的一个
	 * @return
	 */
	public static String getNowDate2Week3() {
		Date date = new Date();
		return getWeek3Str(date);
	}
	
	/**
	 * @discreption 获取当前时间的n月之前或之后的时间
	 * @param n int
	 * @return Date
	 */
	public static Date getNYear2Date(int n) {
		Calendar c = Calendar.getInstance();
		c.add(Calendar.YEAR, n);
		return c.getTime();
	}
	
	/******* 得到上年日期 *******/
	public static Date getLastYear() {
		return getNYear2Date(-1);
	}
	
	/**
	 * @discreption 获取当前时间的n月之前或之后的时间
	 * @param n int
	 * @return Date
	 */
	public static Date getNMonth2Date(int n) {
		Calendar c = Calendar.getInstance();
		c.add(Calendar.MONTH, n);
		return c.getTime();
	}

	/******* 得到上月日期 *******/
	public static Date getLastMonth() {
		return getNMonth2Date(-1);
	}

	/**
	 * @discreption 获取当前时间的n天之前或之后的时间
	 * @param n int
	 * @return Date
	 */
	public static Date getNDay2Date(int n) {
		Calendar cal = Calendar.getInstance();
		cal.add(Calendar.DATE, n);
		return cal.getTime();
	}
	
	/******* 得到昨天日期 *******/
	public static Date getYesterDay() {
		return getNDay2Date(-1);
	}

	/**
	 * 获取两个日期之间间隔天数
	 * 
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	public static String getBetweenDay(Date startDate, Date endDate) {
		long day = 0;
		try {
			day = (endDate.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1000);
		} catch (Exception e) {
			return "";
		}
		return day + "";
	}
	
	/**
	 * 获取指定年的最后一天的Date
	 * @param year
	 * @return
	 */
	public static Date getLastDayOfYear(int year) {
        Calendar cal = Calendar.getInstance();
        // 设置年份
        cal.set(Calendar.YEAR, year);
        // 设置月份
        cal.set(Calendar.MONTH, 12);
        // 设置月份的最后1天
        cal.set(Calendar.DATE, 0);
        return cal.getTime();
    }
	
	/**
	 * 获取指定年和月的最后一天的Date
	 * @param year
	 * @return
	 */
	public static Date getLastDayOfYearAndMonth(int year, int month) {
        Calendar cal = Calendar.getInstance();
        // 设置年份
        cal.set(Calendar.YEAR, year);
        // 设置月份
        cal.set(Calendar.MONTH, month);
        // 设置月份的最后1天
        cal.set(Calendar.DATE, 0);
        return cal.getTime();
    }
	
	/**
	 * 获取指定年的第一天的Date
	 * @param year
	 * @return
	 */
	public static Date getFirstDayOfYear(int year) {
        Calendar cal = Calendar.getInstance();
        // 设置年份
        cal.set(Calendar.YEAR, year);
        // 设置月份
        cal.set(Calendar.MONTH, 0);
        // 设置月份的最后1天
        cal.set(Calendar.DAY_OF_MONTH, 1);
        return cal.getTime();
    }
	
	/**
	 * 获取指定年的第一天的Date
	 * @param year
	 * @return
	 */
	public static Date getFirstDayOfYearAndMonth(int year, int month) {
        Calendar cal = Calendar.getInstance();
        // 设置年份
        cal.set(Calendar.YEAR, year);
        // 设置月份
        cal.set(Calendar.MONTH, month-1);
        // 设置月份的最后1天
        cal.set(Calendar.DAY_OF_MONTH, 1);
        return cal.getTime();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rosinm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值