Donc, je reçois un atsortingbut de date à partir d’un object 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.toSsortingng()); cal=Calendar.getInstance(); cal.setTime(date); } catch (ParseException e) { System.out.println("Exception :"+e); } return cal; }
Pour simuler l’object entrant, j’affecte simplement les valeurs dans le code qui utilise actuellement:
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.toSsortingng());
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, les conventions de nommage Java suggèrent que les noms de méthode commencent par une lettre minuscule, elle devrait donc être: dateToCalendar
ou toCalendar
(comme indiqué).
OK, traissons votre code, n’est-ce pas?
DateFormat formatter = new SimpleDateFormat("yyyyMMdd"); date = (Date)formatter.parse(date.toSsortingng());
DateFormat
est utilisé pour convertir des chaînes en dates ( parse()
) ou dates en chaînes ( format()
). Vous l’utilisez pour parsingr la représentation sous forme de chaîne d’une date à une date. Cela ne peut pas être vrai, n’est-ce pas?
Utilisez simplement Apache Commons
DateUtils.toCalendar (Date date)
c’est si facile … de convertir une date en calendrier comme ceci:
Calendar cal=Calendar.getInstance(); DateFormat format=new SimpleDateFormat("yyyy/mm/dd"); format.format(date); cal=format.getCalendar();
Cette fonction renvoie un object date SQL à partir d’un object date java.
public java.sql.Date convertJavaDateToSQL(Date d) { java.sql.Date d1= new java.sql.Date(d.getTime()); return d1; }