web-dev-qa-db-fra.com

Conversion d'un objet Date en un objet calendrier

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()); 
179
Will

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?

420

Il suffit d'utiliser Apache Commons

DateUtils.toCalendar (Date date)

18
David Trujillo