java 操作日期时间 公共类

  1. 判断当前时间是否上午下午
 GregorianCalendar ca = new GregorianCalendar();
 Integer index = ca.get(GregorianCalendar.AM_PM);
 if(index==0 ){
    
       
     // 0-上午
 }else if(index==1){
    
    
     // 1-下午
 }
  1. 对日期时间添加1小时或30分钟或10分钟
 /**
   * 日期 加减 毫秒
   * @param startTime
   * @param minute
   * @return
   */
  public static Date getTimeSub(String startTime, Integer minute){
    
     // *60*1000
      if(StringUtils.isEmpty(startTime)){
    
    
          return null;
      }
      SimpleDateFormat sdf  =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      try{
    
    
          Date firstD = sdf.parse(startTime);
          firstD.setTime(firstD.getTime() - minute);
          return firstD;
      }catch (Exception e){
    
    
          log.error("---DateUtils--getTimeSub:"+ e);
      }
      return null;
  }
  1. 比较两个时间格式大小 年月日时分秒
 /**
   * 比较两个时间格式大小 年月日时分秒
   * @param firstDate
   * @param secondDate
   * @param pattern
   * @return
   */
  public static boolean compareDateStr(String firstDate, String secondDate, String pattern){
    
    
      boolean bool  = false;
      if(StringUtils.isEmpty(firstDate) || StringUtils.isEmpty(secondDate)){
    
    
          return bool;
      }
      if(StringUtils.isEmpty(pattern)){
    
    
          pattern = "yyyy-MM-dd HH:mm:ss";
      }
      SimpleDateFormat sdf  =new SimpleDateFormat(pattern);
      try{
    
    
          Date firstD = sdf.parse(firstDate);
          Date secondD = sdf.parse(secondDate);
          bool = firstD.getTime() >= secondD.getTime();
      }catch (Exception e){
    
    
          log.error("---DateUtils--compareDateStr:"+ e);
          bool  = false;
      }
      return bool;
  }
  1. 判断当前时间是否在[startTime, endTime]区间,注意时间格式要一致
  /**
    * 判断当前时间是否在[startTime, endTime]区间,注意时间格式要一致
    * @param nowTime 当前时间
    * @param startTime 开始时间
    * @param endTime 结束时间
    * @return
    */
   public static boolean isEffectiveDate(Date nowTime, Date startTime, Date endTime) {
    
    
       if (nowTime.getTime() == startTime.getTime()
               || nowTime.getTime() == endTime.getTime()) {
    
    
           return true;
       }
       Calendar date = Calendar.getInstance();
       date.setTime(nowTime);

       Calendar begin = Calendar.getInstance();
       begin.setTime(startTime);

       Calendar end = Calendar.getInstance();
       end.setTime(endTime);

       if (date.after(begin) && date.before(end)) {
    
    
           return true;
       } else {
    
    
           return false;
       }
   }
  1. 比较 两个时间区间有没有交集
/**
  * 比较 两个时间区间有没有交集
  * true:有交集 false:无交集
  * @param startDate1
  * @param endDate1
  * @param startDate2
  * @param endDate2
  * @return
  */
 private static boolean isOverlap(Date startDate1, Date endDate1, Date startDate2, Date endDate2) {
    
    
     return startDate1.getTime() <= endDate2.getTime() && endDate1.getTime()>=startDate2.getTime();
 }
  1. 计算两个日期之间相差多少天
/**
 * 计算两个日期之间相差多少天
 * @param firstDate
 * @param secondDate
 * @return
 */
public static int getDiffDate(String firstDate, String secondDate) {
    
    
    int day = 0;
    if(StringUtils.isEmpty(firstDate) || StringUtils.isEmpty(secondDate)){
    
    
        return 0;
    }
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    try{
    
    
        Date firstD = sdf.parse(firstDate);
        Date secondD = sdf.parse(secondDate);
        day = (int) ((firstD.getTime() - secondD.getTime()) / (1000*3600*24));
    }catch (Exception e){
    
    
        log.error("---utils--getDiffDate:"+ e);
    }
    return days;
}

Guess you like

Origin blog.csdn.net/qq_16771097/article/details/113696321