Convertir un objeto de fecha en un objeto de calendario [duplicado]

Resuelto Will asked hace 13 años • 3 respuestas

Entonces obtengo un atributo de fecha de un objeto entrante en el formulario:

Tue May 24 05:05:16 EDT 2011

Estoy escribiendo un método auxiliar simple para convertirlo en un método de calendario. Estaba usando el siguiente código:

    public static Calendar DateToCalendar(Date date ) 
{ 
 Calendar cal = null;
 try {   
  DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
  date = (Date)formatter.parse(date.toString()); 
  cal=Calendar.getInstance();
  cal.setTime(date);
  }
  catch (ParseException e)
  {
      System.out.println("Exception :"+e);  
  }  
  return cal;
 }

Para simular el objeto entrante simplemente estoy asignando los valores dentro del código que uso actualmente:

private Date m_lastActivityDate = new Date();

Sin embargo, esto me da un puntero nulo una vez que el método llega a:

date = (Date)formatter.parse(date.toString()); 
Will avatar May 31 '11 17:05 Will
Aceptado

Este es tu método:

public static Calendar toCalendar(Date date){ 
  Calendar cal = Calendar.getInstance();
  cal.setTime(date);
  return cal;
}

Todo lo demás que estás haciendo es incorrecto e innecesario.

Por cierto, las convenciones de nomenclatura de Java sugieren que los nombres de los métodos comiencen con una letra minúscula, por lo que debería ser: dateToCalendaro toCalendar(como se muestra).


Bien, ordeñamos tu código, ¿de acuerdo?

DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
date = (Date)formatter.parse(date.toString()); 

DateFormatse utiliza para convertir cadenas en fechas ( parse()) o fechas en cadenas ( format()). Lo está utilizando para analizar la representación de cadena de una fecha en una fecha. Esto no puede estar bien, ¿verdad?

Sean Patrick Floyd avatar May 31 '2011 10:05 Sean Patrick Floyd

Sólo usa Apache Commons

DateUtils.toCalendar(Fecha fecha)

David Trujillo avatar Aug 20 '2016 17:08 David Trujillo