English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Resumen de métodos comunes de comparación y cálculo de fechas en Java

Este artículo comparte todos los métodos comunes de comparación entre fechas, para referencia futura. 

Calentamiento:Obtener la hora actual 

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss;//Configuración del formato de fecha
String nowDate = df.format(new Date());// new Date() para obtener la hora actual del sistema 

Nota: El autor siempre creyó que el tipo de dato date no era tan flexible como el tipo de cadena de texto, por lo que todas las comparaciones a continuación son de cadenas de texto de tipo date. Si realmente, realmente eres tan terco, ok, aquí está el método de conversión de date a string: 

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss;//Configuración del formato de fecha
String date = df.format(Date tipo de tiempo); 

1.comparación de fechas de dos tipos de cadenas de texto 

public static int compare_date(String DATE1, String DATE2
     DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss;
     try {
       Date dt1 = df.parse(DATE1);
       Date dt2 = df.parse(DATE2);
       if (dt12.getTime()) {
         System.out.println("dt1 en dt2anterior;
         return 1;
       else if (dt1.getTime() < dt2.getTime()) {
         System.out.println("dt1en dt2después");
         return -1;
       } else {
         return 0;
       }
     } catch (Exception exception) {
       exception.printStackTrace();
     }
     return 0;
   }

2.Devuelve la cantidad de días entre dos fechas de tipo string 

public static int daysBetween(String smdate,String bdate){ 
     SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 
     Calendar cal = Calendar.getInstance();  
     long time1 = 0;
     long time2 = 0;
     try{
       cal.setTime(sdf.parse(smdate));  
       time1 = cal.getTimeInMillis();  
       cal.setTime(sdf.parse(bdate)); 
       time2 = cal.getTimeInMillis(); 
     }catch(Exception e){
       e.printStackTrace();
     }
     long between_days=(time2-time1)/(1000*3600*24); 
    return Integer.parseInt(String.valueOf(between_days));   
   }

3.Devuelve la cantidad de horas entre dos fechas de tipo string 

public static int daysBetween2(String startTime, String endTime) {
     SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH"); 
     Calendar cal = Calendar.getInstance();  
     long time1 = 0;
     long time2 = 0;
     try{
        cal.setTime(sdf.parse(startTime));  
        time1 = cal.getTimeInMillis();  
        cal.setTime(sdf.parse(endTime)); 
        time2 = cal.getTimeInMillis(); 
     }catch(Exception e){
       e.printStackTrace();
     }
     long between_days=(time2-time1)/(1000*3600); 
     return Integer.parseInt(String.valueOf(between_days));   
   }

4.Calcular las fechas coincidentes de dos periodos 

/**
   * Calcular las fechas coincidentes de dos periodos
   * @param str1 Fecha inicial1
   * @param str2 Fecha final1
   * @param str3 Fecha inicial2
   * @param str4 Fecha final2
   * @return
   * @throws Exception
   */
  public static Map<String,Object> comparisonRQ(String str1, String str2, String str3,
      String str4) throws Exception {
    String mesg = "";
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    String startdate = "";
    String enddate = "";
    try {
      Date dt1 = df.parse(str1);
      Date dt2 = df.parse(str2);
      Date dt3 = df.parse(str3);
      Date dt4 = df.parse(str4);
      if (dt1.getTime()<=dt3.getTime()&&dt3.getTime()<=dt2.getTime()&&dt2.getTime()<=dt4.getTime()) {
        mesg = "f";//Superposición
        startdate = str3;
        enddate = str2;
      }
      if (dt1.getTime()>=dt3.getTime()&&dt3.getTime()<=dt2.getTime()&&dt2.getTime()<=dt4.getTime()) {
        mesg = "f";//Superposición
        startdate = str1;
        enddate = str2;
      }
      if (dt3.getTime()<=dt1.getTime()&&dt1.getTime()<=dt4.getTime()&&dt4.getTime()<=dt2.getTime()) {
        mesg = "f";//Superposición
        startdate = str1;
        enddate = str4;
      }
      if (dt3.getTime()>=dt1.getTime()&&dt1.getTime()<=dt4.getTime()&&dt4.getTime()<=dt2.getTime()) {
        mesg = "f";//Superposición
        startdate = str3;
        enddate = str4;
      }
      System.out.println(startdate+"----"+enddate);
    }catch (ParseException e) {
      e.printStackTrace();
      throw new ParseException(e.getMessage(), 0);
    }catch(Exception e){
      e.printStackTrace();
      throw new Exception(e);
    }
    Map<String,Object> map = new HashMap<String,Object>();
    map.put("startdate", startdate);
    map.put("enddate", enddate);
    return map;
  }

Este es el contenido completo del artículo, espero que sea útil para su aprendizaje y que todos apoyen y alienten el tutorial de clamor.

Declaración: El contenido de este artículo se ha obtenido de la red, pertenece al autor original, el contenido se ha subido de manera autónoma por los usuarios de Internet, este sitio no posee los derechos de propiedad, no ha sido editado por humanos y no asume responsabilidad alguna por ellas. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, reemplace # con @) para denunciar, y proporcione evidencia relevante. Una vez verificada, este sitio eliminará inmediatamente el contenido sospechoso de infracción.

Te gustará