JAVA时间日期工具类

 

package com.aoyang.wxapp.util;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

import org.springframework.util.Assert;
import org.springframework.util.StringUtils;

/**
 * 时间日期操作工具类.
 * 
 * @author hc2900@126.com.
 *
 */

public class DateTimeUtils {
	
	private static final int MILLIS_IN_A_MIN = 1000 * 60;
	private static final int MILLIS_IN_A_HOUR = MILLIS_IN_A_MIN * 60;
	private static final int MILLIS_IN_A_DAY = MILLIS_IN_A_HOUR * 24;

	/**yy-MM-dd HH:mm:ss */
	public static final String DATETIME_19 = "%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS";
	/** yyyyMMddHHmmss */
	public static final String DATETIME_14 = "%1$tY%1$tm%1$td%1$tH%1$tM%1$tS";
	/** HH:mm:ss */
	public static final String TIME_8 = "%1$tH:%1$tM:%1$tS";
	/** HHmmss */
	public static final String TIME_6 = "%1$tH%1$tM%1$tS";
	/** yyyy-MM-dd */
	public static final String DATE_10 = "%1$tY-%1$tm-%1$td";
	/** yyyyMMdd */
	public static final String DATE_8 = "%1$tY%1$tm%1$td";


	
	/**
	 * 获得当前的日期和时间
	 * 
	 * @return YYYYMMDDhhmmss格式
	 */
	public static String getCurrentDataTime14() {
		Calendar cal = new GregorianCalendar();
		return String.format(DATETIME_14, cal);
	}

	/**
	 * 返回月份日期组合
	 * 
	 * @return MMDD 格式.
	 */
	public static String getCurrentDataTime4() {
		Calendar cal = new GregorianCalendar();
		return String.format("%1$tm%1$td", cal);
	}

	/**
	 * 获得当前日期时间
	 * 
	 * @return yyyy-MM-dd HH:mm:ss
	 */
	public static String getCurrentDataTime19() {
		Calendar cal = new GregorianCalendar();
		return String.format(DATETIME_19, cal);
	}

	/**
	 * 将指定的日期格式化为特定格式的字符串
	 * 
	 * @param date
	 *            指定的日期
	 * @return yyyyMMddHHmmss 格式的时间日期字符串.
	 */
	public static String formatDate(Date date) {
		SimpleDateFormat sdf = new SimpleDateFormat();
		sdf.applyPattern("yyyyMMddHHmmss");
		String d = sdf.format(date);
		return d;
	}

	/**
	 * 将指定的日期格式化为特定格式的字符串
	 * 
	 * @param date
	 *            指定的日期
	 * @param pattern
	 *            格式化字符串
	 * @return 以pattern指定格式的字符串
	 */
	public static String dateToString(Date date, String pattern) {
		SimpleDateFormat sdf = new SimpleDateFormat();
		sdf.applyPattern(pattern);
		return sdf.format(date);
	}

	/**
	 * 将指定的日期转换为字符串
	 * 
	 * @param date 要转换的日期.
	 * @return yy-MM-dd HH:mm:ss格式的字符串.
	 */
	public static String dateToString(Date date) {
		Assert.notNull(date, "The Date could not be null!!!");
		
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return sdf.format(date);
	}

	/**
	 * 时间日期字符串格式转换成 {@link Date}.
	 * 
	 * @param date
	 *            字符串格式的时间日期.
	 * 
	 * @param pattern
	 *            转换格式字符串.
	 * @return <code>Date</code>对象,转换异常返回<code>null</code>.
	 */
	public static Date stringToDate(String date, String pattern) {
		Date d = null;
		try {
			DateFormat sdf = new SimpleDateFormat(pattern);
			d = sdf.parse(date);
		} catch (ParseException e) {
		}
		return d;
	}

	 /**
	 * 字符串转换成日期
	 * @param str
	 * @return date
	 */
	 public static Date StrToDate(String str) {
	   
	    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	    Date date = null;
	    try {
	     date = format.parse(str);
	    } catch (ParseException e) {
	     e.printStackTrace();
	    }
	    return date;
	 }
	 
	 /* 
	     * 将时间戳转换为时间
	     */
	    public static String stampToDate(String s){
	        String res;
	        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
	        long lt = new Long(s);
	        Date date = new Date(lt);
	        res = simpleDateFormat.format(date);
	        return res;
	    }
	    
		 /* 
	     * 将时间戳转换为时间
	     */
	    public static String stampToDateYD(String s){
	        String res;
	        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");
	        long lt = new Long(s);
	        Date date = new Date(lt);
	        res = simpleDateFormat.format(date);
	        return res;
	    }
	
	/**
	 * 比较两个日期之间的分钟间隔.
	 * 
	 * @param d1
	 * @param d2
	 * @return 两个日期之间的时间差,分钟为单位
	 */
	public static int minuteDuration(Date d1, Date d2) {
		long start = d1.getTime();
		long end = d2.getTime();
		int duration = (int) (Math.abs(end - start) / MILLIS_IN_A_MIN);

		return duration;
	}

	/**
	 * 返回两个日期之间的天数差
	 * 
	 * @param startDate
	 *            起始日期
	 * @param endDate
	 *            结束日期
	 * @return 两个日期之间的天数
	 */
	public static int dayDuration(Date startDate, Date endDate) {
		Date end = (Date) endDate.clone();
		Date start = (Date) startDate.clone();

		resetTime(start);
		resetTime(end);
		return (int) Math.floor((end.getTime() - start.getTime())
				/ MILLIS_IN_A_DAY);
	}

	/**
	 * 比较两个日期是否为同一天
	 * 
	 * @param date1
	 * @param date2
	 * @return 如果是同一天,返回true,否则返回false;
	 */
	public static boolean isTheSameDay(Date date1, Date date2) {

		Date d1 = (Date) date1.clone();
		Date d2 = (Date) date2.clone();
		resetTime(d1);
		resetTime(d2);
		return d1.getTime() == d2.getTime();
	}

	/**
	 * 指定的日期上加上指定的天数
	 * 
	 * @param date
	 *            基准日期
	 * @param days
	 *            要加上的天数
	 * @return
	 */
	public static Date addDate(Date date, int days) {
		Date d = (Date) date.clone();
		Long duration = d.getTime() + days * MILLIS_IN_A_DAY;
		d.setTime(duration.intValue());
		return d;
	}

	/**
	 * 指定的日期上加上指定的天数
	 * 
	 * @param date
	 *            基准日期
	 * @param days
	 *            要加上的天数
	 * @return
	 */
	public static Date addHour(Date date, int hours) {
		Date d = (Date) date.clone();
		d.setTime(d.getTime() + hours * MILLIS_IN_A_HOUR);
		return d;
	}

	
	public static Date add_Date( int days) {
	    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	    Calendar c = Calendar.getInstance();
	   
	    c.add(Calendar.DAY_OF_MONTH, days);

	   
		return c.getTime();
	}
	/**
	 * 重设时分秒
	 * 
	 * @param date
	 *            要重新设置时分秒的日期
	 */
	public static void resetTime(Date date) {
		Calendar c = Calendar.getInstance();

		c.setTime(date);
		c.set(Calendar.HOUR, 0);
		c.set(Calendar.MINUTE, 0);
		c.set(Calendar.SECOND, 0);
		c.set(Calendar.MILLISECOND, 0);

		date.setTime(c.getTime().getTime());
	}

	/**
	 * 日期比较.
	 * 
	 * @param compared
	 *            要比较的日期.
	 * @param baseDate
	 *            基准日期.
	 * @return 比较的日期晚于基准日期返回>0,比较的日期早于基准日期返回-1,两个日期相等返回0;
	 */
	public static int compare(Date compared, Date baseDate) {
		return (int) (baseDate.getTime() - compared.getTime());
	}

	/**
	 * 比较指定日期是否在两个日期之间.
	 * 
	 * @param compared
	 *            要比较的日期.
	 * @param baseStart
	 *            起始日期.
	 * @param baseEnd
	 *            结束日期.
	 * @return
	 */
	public static boolean dayBetween(Date compared, Date baseStart, Date baseEnd) {
		Assert.notNull(compared);
		Assert.notNull(baseStart);
		Assert.notNull(baseEnd);

		return compared.getTime() >= baseStart.getTime()
				&& compared.getTime() <= baseEnd.getTime();
	}
	
	/**
	 * 比较两个时间字符串之间的秒差值
	 * @param dateStr1
	 * 			"yyyy-MM-dd HH:mm:ss"
	 * @param dataStr2
	 * 			"yyyy-MM-dd HH:mm:ss"
	 * @return
	 */
	public static long secondDuration(String dateStr1, String dataStr2){
		if(!StringUtils.isEmpty(dateStr1) && !StringUtils.isEmpty(dataStr2)){
			long start = StrToDate(dateStr1).getTime();
			long end = StrToDate(dataStr2).getTime();
			return (Math.abs(end - start) / 1000);
		}
		return 0;
	}
	
	
	public static String getFindDateSunday(String date) throws ParseException {
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
		Calendar cal = Calendar.getInstance();
		Date time=sdf.parse(date);
		cal.setTime(time);
		int dayWeek = cal.get(Calendar.DAY_OF_WEEK);
		if(1 == dayWeek) {
			cal.add(Calendar.DAY_OF_MONTH, -1);
		}
		cal.setFirstDayOfWeek(Calendar.MONDAY);
		int day = cal.get(Calendar.DAY_OF_WEEK);
		cal.add(Calendar.DATE, cal.getFirstDayOfWeek()-day);
		cal.add(Calendar.DATE, 6);
		System.out.println( sdf.format(cal.getTime()));
		return sdf.format(cal.getTime());
	}
	
	
	
	public static ArrayList<String> getDates(Date date, int intervals) throws Exception{
		ArrayList<String> pastDaysList = new ArrayList<>();
		for (int i = (intervals-1); i >=0; i--) {
			pastDaysList.add(getPastDate(date,i));
		}
		return pastDaysList;
	}

	
	
	/**
	 * 获取过去第几天的日期
	 *
	 * @param past
	 * @return
	 */
	public static String getPastDate(Date  date,int past) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - past);
		Date today = calendar.getTime();
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		String result = format.format(today);
		return result;
	}
	
	
	/**
	 * 获取某日前n个月
	 * @param date
	 * @param month
	 * @return
	 */
	public static String getPastMonth(Date  date,int month) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - month);
		Date today = calendar.getTime();
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
		String result = format.format(today);
		return result;
	}
	
	
	/**
	 * 获取某月最后一天日期
	 * @param date
	 * @return
	 * @throws Exception
	 */
	public static String getMonthLastDay(String date) throws Exception{
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		Date parseDate = sdf.parse(date);
		Calendar cal = Calendar.getInstance();
		cal.setTime(parseDate);
		cal.set(Calendar.DAY_OF_MONTH, 1);
		cal.roll(Calendar.DAY_OF_MONTH, -1);
		return sdf.format(cal.getTime());
	}
}

第二个工具类

/**
 * Project Name: 澳洋信息系统微信管理平台
 * Date:2016年10月10日
 * Copyright(c) 2016 All Rights Reserved
 */
package com.aoyang.wxapp.util;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
 * 日期处理工具类.
 */
public class DateUtil {

	/**
	 * 获取YYYY格式
	 * 
	 * @return
	 */
	public static String getSdfTimes() {
		DateFormat df = new SimpleDateFormat("yyyy");
		return df.format(new Date());
	}

	/**
	 * 获取YYYY格式
	 * 
	 * @return
	 */
	public static String getYear() {
		return new SimpleDateFormat("yyyy").format(new Date());
	}

	/**
	 * 获取YYYY-MM-DD格式
	 * 
	 * @return
	 */
	public static String getDay() {
		return new SimpleDateFormat("yyyy-MM-dd").format(new Date());
	}

	/**
	 * 获取YYYYMMDD格式
	 * 
	 * @return
	 */
	public static String getDays() {
		return new SimpleDateFormat("yyyyMMdd").format(new Date());
	}

	/**
	 * 获取YYYY-MM-DD HH:mm:ss格式
	 * 
	 * @return
	 */
	public static String getTime() {
		return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
	}

	/**
	 * @Title: compareDate
	 * @Description: (日期比较,如果s>=e 返回true 否则返回false)
	 * @param s
	 * @param e
	 * @return boolean
	 * @throws 
	 * @author fh
	 *   false时可能是因为某一个参数解析错误,不建议使用
	 */
	@Deprecated
	public static boolean compareDate(String s, String e) {
		Date sDate = fomatDate(s);
		Date eDate = fomatDate(e);
		if (sDate == null || eDate == null) {
			return false;
		}
		return sDate.getTime() >= eDate.getTime();
	}

	/**
	 * 格式化日期
	 * 
	 * @return
	 */
	public static Date fomatDate(String date) {
		DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
		try {
			return fmt.parse(date);
		} catch (ParseException e) {
			e.printStackTrace();
			return null;
		}
	}

	/**
	 * 校验日期是否合法
	 * 
	 * @return
	 */
	public static boolean isValidDate(String s) {
		DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
		try {
			fmt.parse(s);
			return true;
		} catch (Exception e) {
			// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对
			return false;
		}
	}

	/**
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	public static int getDiffYear(String startTime, String endTime) {
		DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
		try {
			// long aa=0;
			int years = (int) (((fmt.parse(endTime).getTime() - fmt.parse(startTime).getTime()) / (1000 * 60 * 60 * 24))
					/ 365);
			return years;
		} catch (Exception e) {
			// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对
			return 0;
		}
	}

	/**
	 * <li>功能描述:时间相减得到天数
	 * 
	 * @param beginDateStr
	 * @param endDateStr
	 * @return long
	 * @author Administrator
	 */
	public static long getDaySub(String beginDateStr, String endDateStr) {
		long day = 0;
		java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");
		java.util.Date beginDate = null;
		java.util.Date endDate = null;

		try {
			beginDate = format.parse(beginDateStr);
			endDate = format.parse(endDateStr);
			day = (endDate.getTime() - beginDate.getTime()) / (24 * 60 * 60 * 1000)+1;
		} catch (ParseException e) {
			e.printStackTrace();
		}

		return day;
	}

	/**
	 * 得到n天之后的日期
	 * 
	 * @param days
	 * @return
	 */
	public static String getAfterDayDate(String days) {
		int daysInt = Integer.parseInt(days);

		Calendar canlendar = Calendar.getInstance(); // java.util包
		canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动
		Date date = canlendar.getTime();

		SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String dateStr = sdfd.format(date);

		return dateStr;
	}

	/**
	 * 得到n天之后是周几
	 * 
	 * @param days
	 * @return
	 */
	public static String getAfterDayWeek(String days) {
		int daysInt = Integer.parseInt(days);
		Calendar canlendar = Calendar.getInstance(); // java.util包
		canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动
		Date date = canlendar.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("E");
		String dateStr = sdf.format(date);
		return dateStr;
	}

	/**
	 * 获取过去或者未来 任意天内的日期数组
	 * 
	 * @param intervals
	 *            intervals天内
	 * @return 日期数组
	 */
	public static ArrayList<Date> getPastDateList(int intervals) {
		ArrayList<Date> pastDaysList = new ArrayList<>();
		for (int i = intervals; i > 0; i--) {
			pastDaysList.add(getPastDate(i));
		}
		return pastDaysList;
	}

	/**
	 * 获取过去第几天的日期
	 * 
	 * @param past
	 * @return
	 */
	public static Date getPastDate(int past) {
		Calendar calendar = Calendar.getInstance();
		calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - past);
		return calendar.getTime();
	}

	/**
	 * @author daixiongyan 根据年、月获取当月最后一天
	 * @date 2019-1-14
	 * @param year
	 * @param month
	 * @return
	 */
	public static String getLastDayOfMonth(int year, int month) {
		Calendar cal = Calendar.getInstance();
		// 设置年份
		cal.set(Calendar.YEAR, year);
		// 设置月份
		cal.set(Calendar.MONTH, month - 1);
		// 获取某月最大天数
		int lastDay = cal.getActualMaximum(Calendar.DATE);
		// 设置日历中月份的最大天数
		cal.set(Calendar.DAY_OF_MONTH, lastDay);
		// 格式化日期
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		return sdf.format(cal.getTime());
	}
	
	/**
	 * 获取上个月的起止日期
	 * @author yangd 
	 * @return
	 */
	public static PageData getFirstLastDayOfLastMonth() {
		Calendar c = Calendar.getInstance();
		c.add(Calendar.MONTH, -1);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		int lastMonthMaxDay=c.getActualMaximum(Calendar.DAY_OF_MONTH);
		System.out.println(lastMonthMaxDay);
		c.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH), lastMonthMaxDay);
		
		//按格式输出
		String lastDayOfLastMonth = sdf.format(c.getTime()); //上月最后一天
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-01");
		String firstDayOfLastMonth = sdf2.format(c.getTime()); //上月第一天
		PageData pd = new PageData();
		pd.put("FIRSTDAYOFLASTMONTH", firstDayOfLastMonth);
		pd.put("LASTDAYOFLASTMONTH", lastDayOfLastMonth);
		return pd;
	}
	
	/**
	 * 获取本月的起止日期
	 * @author yangd 
	 * @return
	 */
	public static PageData getFirstLastDayOfThisMonth() {
		Calendar c = Calendar.getInstance();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		int thisMonthMaxDay=c.getActualMaximum(Calendar.DAY_OF_MONTH);
		System.out.println(thisMonthMaxDay);
		c.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH), thisMonthMaxDay);
		
		//按格式输出
		String lastDayOfThisMonth = sdf.format(c.getTime());
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-01");
		String firstDayOfThisMonth = sdf2.format(c.getTime());
		PageData pd = new PageData();
		pd.put("FIRSTDAYOFTHISMONTH", firstDayOfThisMonth);
		pd.put("LASTDAYOFTHISMONTH", lastDayOfThisMonth);
		return pd;
	}
	
	/**
	 * 获取两个日期之间的差值
	 * @author yangd 
	 * @param dateEnd
	 * @param dateStart
	 * @return PageData
	 */
	public static PageData timesBetween(String dateEnd,String dateStart) {
		DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		long day = 0;
		long hour = 0;
		long min = 0;
		long sec = 0;
		long diff = 0;
		try {
			Date endDate= df.parse(dateEnd);
			Date startDate= df.parse(dateStart);
			long etime = endDate.getTime();
			long stime = startDate.getTime();
			if(etime>stime){
				diff = etime - stime;
			}else{
				PageData pd = new PageData();
				boolean isOutTime = true;
				pd.put("Day", "0");
				pd.put("Hour", "0");
				pd.put("Min", "0");
				pd.put("Sec", "0");
				pd.put("isOutTime", isOutTime);
				return pd;
			}
			day = diff/(24*60*60*1000);
			hour = diff/(60*60*1000) - day*24;
			min = diff/(60*1000) - day*24*60 - hour*60;
			sec = diff/1000-day*24*60*60-hour*60*60-min*60;
		} catch (ParseException e) {
			return null;
		}
		PageData timePd = new PageData();
		timePd.put("Day", day);
		timePd.put("Hour", hour);
		timePd.put("Min", min);
		timePd.put("Sec", sec);
		return timePd;
	}

	/**
	 * 获取两个日期之间的较小的日期
	 * @param t1
	 * @param t2
	 * @return
	 */
	public static String getMinTime(String t1,String t2){  
	  if(t1.compareTo(t2)<0) {
		  return t1;
	  }else {
		  return t2;
	  }
    }  
	
	/**
	 * 获取x分钟后的时间
	 * @author yangd 
	 * @param minuteCount
	 * @return PageData
	 */
	public static String getMinuteAfter(int minuteCount){
		Calendar nowTime = Calendar.getInstance();
		nowTime.add(Calendar.MINUTE, minuteCount);// 5分钟之前的时间
		Date afterTime = nowTime.getTime();
		return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(afterTime);
	} 
	
	/**
	 * 获取今天的开始时间(00:00:00)
	 * @author yangd 
	 * @return String
	 */
	public static String getTodayFirstMoment() {
		Calendar calendar = Calendar.getInstance();
		Date time = calendar.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		String date = sdf.format(time);
		date += " 00:00:00";
		return date;
	}
	
	/**
	 * 获取今天的结束时间(23:59:59)
	 * @author yangd 
	 * @return String
	 */
	public static String getTodayLastMoment() {
		Calendar calendar = Calendar.getInstance();
		Date time = calendar.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		String date = sdf.format(time);
		date += " 23:59:59";
		return date;
	}
	
	/**
	 * 获取昨天的开始时间(00:00:00)
	 * @author yangd 
	 * @return String
	 */
	public static String getYesterFirstMoment() {
		Calendar calendar = Calendar.getInstance();
		calendar.add(Calendar.DATE, -1);
		Date time = calendar.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		String date = sdf.format(time);
		date += " 00:00:00";
		return date;
	}
	
	/**
	 * 获取昨天的结束时间(23:59:59)
	 * @author yangd 
	 * @return String
	 */
	public static String getYesterLastMoment() {
		Calendar calendar = Calendar.getInstance();
		calendar.add(Calendar.DATE, -1);
		Date time = calendar.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		String date = sdf.format(time);
		date += " 23:59:59";
		return date;
	}
	
	/**
	 * 获取当年第一天
	 * @author yangd 
	 * @return String
	 */
	public static String getFirstOfCurrYear() {
		Calendar cal = Calendar.getInstance();
		cal.add(Calendar.DATE, -1);
		int currentYear = cal.get(Calendar.YEAR);
		cal.clear();
		cal.set(Calendar.YEAR, currentYear);
		Date currYearFirst = cal.getTime();
		return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(currYearFirst);
	}
	
	/**
	 * 获取昨天是当年的第多少天
	 * @author yangd 
	 * @return int
	 */
	public static int yesterNumOfYear() {
		Calendar cal = Calendar.getInstance();
    	cal.add(Calendar.DATE, -1);
    	return cal.get(Calendar.DAY_OF_YEAR);
	}
	
	/**
	 * 获取昨天的日期 yyyy-MM-dd
	 * @author yangd
	 * return String
	 */
	public static String getLastDate() {
		Calendar calendar = Calendar.getInstance();
		calendar.add(Calendar.DATE, -1);
		Date time = calendar.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		return sdf.format(time);
	}
	
	/**
	 * 获取指定日期的前后x天的日期
	 * @author yangd
	 * @param time
	 * @param differ
	 * @param isAdd
	 * @return
	 */
	public static String getDayByNowDate(String time,int differ,boolean isAdd){
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar calendar = Calendar.getInstance();
        Date date=null;
        try {
			date = sdf.parse(time);
		} catch (ParseException e) {
			return null;
		}
        calendar.setTime(date);
        int day=calendar.get(Calendar.DATE);
        if(isAdd){
        	calendar.set(Calendar.DATE,day+differ);
        }else{
        	calendar.set(Calendar.DATE,day-differ);
        }
        return sdf.format(calendar.getTime());
	}

	/**
	 * 获取昨天
	 * @return yyyy-MM-dd
	 */
	public static String getYesterday() {
		Calendar calendar = new GregorianCalendar();
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
		calendar.add(Calendar.DATE, -1);
		return formatter.format(calendar.getTime());
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值