Convertir un objeto de fecha en un objeto de calendario [duplicado]
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());
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: dateToCalendar
o toCalendar
(como se muestra).
Bien, ordeñamos tu código, ¿de acuerdo?
DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
date = (Date)formatter.parse(date.toString());
DateFormat
se 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?
Sólo usa Apache Commons
DateUtils.toCalendar(Fecha fecha)