Je reçois donc un attribut de date d'un objet entrant sous la forme:
Tue May 24 05:05:16 EDT 2011
J'écris une méthode d'assistance simple pour le convertir en une méthode de calendrier, j'utilisais le code suivant:
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;
}
Pour simuler l'objet entrant, je n'affecte que les valeurs du code en utilisant:
private Date m_lastActivityDate = new Date();
Cependant, cela me donne un pointeur nul une fois que la méthode atteint:
date = (Date)formatter.parse(date.toString());
Voici votre méthode:
public static Calendar toCalendar(Date date){
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal;
}
Tout ce que vous faites est à la fois faux et inutile.
BTW, Java Les conventions de dénomination suggèrent que les noms de méthodes commencent par une lettre minuscule. Il doit donc être: dateToCalendar
ou toCalendar
(comme indiqué).
OK, traitons votre code, allons-nous?
DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
date = (Date)formatter.parse(date.toString());
DateFormat
est utilisé pour convertir des chaînes en dates (parse()
) ou des dates en chaînes (format()
). Vous l'utilisez pour analyser la représentation sous forme de chaîne d'une date en une date. Cela ne peut pas être juste, n'est-ce pas?
Il suffit d'utiliser Apache Commons