时间类工具类

private static final long ONE_MINUTE = 60;
private static final long ONE_HOUR = 3600;
private static final long ONE_DAY = 86400;
private static final long ONE_WEEK = 604800;
private static final long ONE_MONTH = 2592000;
private static final long ONE_QUARTER = 7776000;
private static final long ONE_YEAR = 31104000;

/**
 * 获取当前年份
 * @return
 */
public static String getYear() {
   Calendar calendar = Calendar.getInstance();
   return calendar.get(Calendar.YEAR) + "";
}
/**
 * 获取当前月份
 * @return
 */
public static String getMonth() {
   Calendar calendar = Calendar.getInstance();
   int month = calendar.get(Calendar.MONTH) + 1;
   return month + "";
}
/**
 * 获取当前日子
 * @return
 */
public static String getDay() {
   Calendar calendar = Calendar.getInstance();
   return calendar.get(Calendar.DATE) + "";
}
/**
 * 获取当前小时
 *
 * @return
 */
public static String get24Hour() {
   Calendar calendar = Calendar.getInstance();
   return calendar.get(Calendar.HOUR_OF_DAY)+"";
}
/**
 * 获取当前分钟
 * @return
 */
public static String getMinute() {
   Calendar calendar = Calendar.getInstance();
   return calendar.get(Calendar.MINUTE) + "";
}
/**
 * 获取当前秒数
 * @return
 */
public static String getSecond() {
   Calendar calendar = Calendar.getInstance();
   return calendar.get(Calendar.SECOND) + "";
}
/**
 * 获取当前日期
 * @return
 */
public static String getDate() {
   return getYear() + "-" + getMonth() + "-" + getDay();
}
/**
 * 获取
 * @return
 */
public static String getString() {
   return getYear()+ getMonth() + getDay()+get24Hour()+getMinute()+getSecond();
}
/**
 * 获取今天的日期(自定义格式化)
 * @param format
 * @return
 */
public static String getDate(String format) {
   Calendar calendar = Calendar.getInstance();
   SimpleDateFormat simple = new SimpleDateFormat(format);
   String date = simple.format(calendar.getTime());
   if("MM".equals(format)){
      return String.valueOf(Integer.valueOf(date));
   }
   if("dd".equals(format)){
      return String.valueOf(Integer.valueOf(date));
   }
   return date;
}
/**
 * 获取日期(自定义格式化)
 * @param date
 * @param format
 * @return
 * @throws ParseException
 */
public static String getDate(String date,String format){
   SimpleDateFormat simple = null;
   String d="";
   Date sdate;
   try {
   if(date.length()==6||date.length()==7){
      simple = new SimpleDateFormat("yyyy-MM");
   }else{
      simple = new SimpleDateFormat("yyyy-MM-dd");
   }
   SimpleDateFormat simple2 = new SimpleDateFormat(format);
   sdate = simple.parse(date);
   d = simple2.format(sdate);
   if("MM".equals(format)){
      return String.valueOf(Integer.valueOf(d));
   }
   if("dd".equals(format)){
      return String.valueOf(Integer.valueOf(d));
   }
   } catch (ParseException e) {
      e.printStackTrace();
   }
   return d;
}

/**
 * 日期间隔(相对)
 * @param type
 * @param d1
 * @param d2
 * @param format
 * @return
 * @throws ParseException
 */
public static String dayfromDay(String type,String d1,String d2,String format) throws ParseException{
   SimpleDateFormat simple = new SimpleDateFormat(format);
   Date date1 = simple.parse(d1);
   Date date2 = simple.parse(d2);
   long t1 = date1.getTime()/1000;
   long t2 = date2.getTime()/1000;
   long remain = t2-t1;
   long minute = remain/ONE_MINUTE;
   long hour = remain/ONE_HOUR;
   long day = remain/ONE_DAY;
   if("year".equals(type)) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date1);
         int time = calendar.get(Calendar.YEAR);
         calendar.setTime(date2);
         return String.valueOf(calendar.get(Calendar.YEAR)-time);
      }

    if("quarter".equals(type)) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date1);
         int time = calendar.get(Calendar.YEAR) * 4;
         calendar.setTime(date2);
         time -= calendar.get(Calendar.YEAR) * 4;
         calendar.setTime(date1);
         time += calendar.get(Calendar.MONTH) / 4;
         calendar.setTime(date2);
         return String.valueOf(calendar.get(Calendar.MONTH)-time / 4);
      }

    if("month".equals(type)) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date1);
         int time = calendar.get(Calendar.YEAR) * 12;
         calendar.setTime(date2);
         time -= calendar.get(Calendar.YEAR) * 12;
         calendar.setTime(date1);
         time += calendar.get(Calendar.MONTH);
         calendar.setTime(date2);
         return String.valueOf(calendar.get(Calendar.MONTH)-time);
      }

    if ("week".equals(type)) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date1);
         int time = calendar.get(Calendar.YEAR) * 52;
         calendar.setTime(date2);
         time -= calendar.get(Calendar.YEAR) * 52;
         calendar.setTime(date1);
         time += calendar.get(Calendar.WEEK_OF_YEAR);
         calendar.setTime(date2);
         return String.valueOf(calendar.get(Calendar.WEEK_OF_YEAR)-time);
      }
      if("day".equals(type)){
         return ""+day;
      }
      if("hour".equals(type)){
         return ""+hour;
      }
      if("minute".equals(type)){
         return ""+minute;
      }

     return "";
   
}
/**
 * 日期间隔(绝对时间)
 * @param type
 * @param date1
 * @param date2
 * @param format
 * @return
 * @throws ParseException
 */
public static String daytoDay(String type,String date1,String date2,String format) throws ParseException{
   SimpleDateFormat simple = new SimpleDateFormat(format);
   Date d1 = simple.parse(date1);
   Date d2 = simple.parse(date2); 
   long t1 = d1.getTime()/1000;
   long t2 = d2.getTime()/1000;
   long remain = t2-t1;
   long minute = remain/ONE_MINUTE;
   long hour = remain/ONE_HOUR;
   long day = remain/ONE_DAY;
   long week = remain/ONE_WEEK;
   long month = remain/ONE_MONTH;
   long quarter = remain/ONE_QUARTER;
   long year = remain/ONE_YEAR;
   if("minute".equals(type)){
      return ""+minute;
   }
   if("hour".equals(type)){
      return ""+hour;
   }
   if("day".equals(type)){
      return ""+day;
   }
   if("week".equals(type)){
      return ""+week;
   }
   if("month".equals(type)){
      return ""+month;
   }
   if("quarter".equals(type)){
      return ""+quarter;
   }
   if("year".equals(type)){
      return ""+year;
   }
   return "";
}

/**
 * 日期间隔(相对)
 * @param type
 * @param date1
 * @param date2
 * @return
 * @throws ParseException
 */
public static String datediff(String type,Date date1,Date date2) throws ParseException{
   long t1 = date1.getTime()/1000;
   long t2 = date2.getTime()/1000;
   long remain = t2-t1;
   long minute = remain/ONE_MINUTE;
   long hour = remain/ONE_HOUR;
   long day = remain/ONE_DAY;
   if("year".equals(type)) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date1);
         int time = calendar.get(Calendar.YEAR);
         calendar.setTime(date2);
         return String.valueOf(calendar.get(Calendar.YEAR)-time);
      }

    if("quarter".equals(type)) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date1);
         int time = calendar.get(Calendar.YEAR) * 4;
         calendar.setTime(date2);
         time -= calendar.get(Calendar.YEAR) * 4;
         calendar.setTime(date1);
         time += calendar.get(Calendar.MONTH) / 4;
         calendar.setTime(date2);
         return String.valueOf(calendar.get(Calendar.MONTH)-time / 4);
      }

    if("month".equals(type)) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date1);
         int time = calendar.get(Calendar.YEAR) * 12;
         calendar.setTime(date2);
         time -= calendar.get(Calendar.YEAR) * 12;
         calendar.setTime(date1);
         time += calendar.get(Calendar.MONTH);
         calendar.setTime(date2);
         return String.valueOf(calendar.get(Calendar.MONTH)-time);
      }

    if ("week".equals(type)) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date1);
         int time = calendar.get(Calendar.YEAR) * 52;
         calendar.setTime(date2);
         time -= calendar.get(Calendar.YEAR) * 52;
         calendar.setTime(date1);
         time += calendar.get(Calendar.WEEK_OF_YEAR);
         calendar.setTime(date2);
         return String.valueOf(calendar.get(Calendar.WEEK_OF_YEAR)-time);
      }
      if("day".equals(type)){
         return ""+day;
      }
      if("hour".equals(type)){
         return ""+hour;
      }
      if("minute".equals(type)){
         return ""+minute;
      }

     return "";
   
}
/**
 * 自定义时间相加
 * @return
 */
public static Date dateAdd(String type,int amount, Date date){
   Calendar calendar = Calendar.getInstance();
   calendar.setTime(date);
   if("minute".equals(type)){
      calendar.add(Calendar.MINUTE, amount);
   }
   if("hour".equals(type)){
      calendar.add(Calendar.HOUR, amount);
   }
   if("day".equals(type)){
      calendar.add(Calendar.DATE, amount);
   }
   if("month".equals(type)){
      calendar.add(Calendar.MONTH, amount);
   }
   if("year".equals(type)){
      calendar.add(Calendar.YEAR, amount);
   }
   return calendar.getTime();
   
       
}/**
 * 将字符串转换成日期类型
 * @param format
 * @param sdate
 * @return
 * @throws ParseException
 */
public static Date stringToDate(String format,String sdate){
   Date date = new Date();
   SimpleDateFormat dateformat = new SimpleDateFormat(format);
   try {
      date = dateformat.parse(sdate);
   } catch (ParseException e) {
      e.printStackTrace();
   }
   return date;
}
/**
 * 将日期类型转换成字符串类型
 * @param format
 * @param sdate
 * @return
 */
public static String dateToString(String format,Date sdate){
   SimpleDateFormat simple = new SimpleDateFormat(format);
   String date = simple.format(sdate);
   return date;
}

/**
 * 时间戳转Date
 * @param timeStamp
 * @return
 */
public static Date timeStampToDate(String timeStamp) {
   try {
         SimpleDateFormat format =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         Long time = new Long(timeStamp);
         String d = format.format(time);
         Date date;
        date = format.parse(d);
        return date;
   } catch (ParseException e) {
      e.printStackTrace();
   }
      return null;
}

/**
 *  Date转时间戳
 * @param date
 * @return
 */
public static Long dateToTimeStamp(Date date){ 
   return  date.getTime();
}
private final static SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy");
private final static SimpleDateFormat sdfDay = new SimpleDateFormat("yyyy-MM-dd");
private final static SimpleDateFormat sdfDays = new SimpleDateFormat("yyyyMMdd");
private final static SimpleDateFormat sdfTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private final static SimpleDateFormat sdfTimes = new SimpleDateFormat("yyyyMMddHHmmss");
/**
* 获取YYYY格式
* @return
*/
public static String getYear() {
	return sdfYear.format(new Date());
}

/**
* 获取YYYY-MM-DD格式
* @return
*/
public static String getDay() {
	return sdfDay.format(new Date());
}
	
/**
* 获取YYYYMMDD格式
* @return
 */
public static String getDays(){
	return sdfDays.format(new Date());
}

/**
 * 获取YYYY-MM-DD HH:mm:ss格式
* @return
 */
public static String getTime() {
	return sdfTime.format(new Date());
}
/** 
 * 获取某年第一天日期 
 * @param year 年份 
 * @return Date 
 */  
public static Date getCurrYearFirst(int year){  
 Calendar calendar = Calendar.getInstance();  
 calendar.clear();  
 calendar.set(Calendar.YEAR, year);  
 Date currYearFirst = calendar.getTime();  
 return currYearFirst;  
}  
      
/** 
* 获取某年最后一天日期 
* @param year 年份 
* @return Date 
*/  
public static Date getCurrYearLast(int year){  
 Calendar calendar = Calendar.getInstance();  
calendar.clear();  
 calendar.set(Calendar.YEAR, year);  
 alendar.roll(Calendar.DAY_OF_YEAR, -1);  
 Date currYearLast = calendar.getTime();  
 return currYearLast;  
}  
	
	
	public static Map<String,Date> getCurrentYearRegion(){
        Calendar calendar = Calendar.getInstance();  
		Map<String,Date> region = new HashMap<>();
		region.put("begin", getCurrYearFirst(calendar.get(Calendar.YEAR)));
		region.put("end", getCurrYearLast(calendar.get(Calendar.YEAR)));
		return region;
	}
	/**
	 * 获取YYYYMMDDHHmmss格式
	 * @return
	 */
	public static String getTimes() {
		return sdfTimes.format(new Date());
	}


	
    
    /**
     * 得到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;
    }

猜你喜欢

转载自blog.csdn.net/qq_33352259/article/details/80730853