Convertir Java Calendrier Grégorien à la Chaîne
J'ai un Livre de Classe et l'un de ses attributs est:
private Calendar publish_date;
Maintenant, je voudrais insérer un nouveau Livre dans un library.xml fichier. J'ai donc créer un livre:
Book b = new Book();
b.setPublish_date(new GregorianCalendar(1975, 5, 7));
J'ai besoin de cette date à une Chaîne pour que je puisse écrire dans le fichier XML (à l'aide de DOM). J'ai donc effectuer:
Element publish_date = doc.createElement("publish_date");
SimpleDateFormat formatter=new SimpleDateFormat("yyyy MM DD");
publish_date.appendChild(doc.createTextNode(formatter.format(b.getPublish_date())));
book.appendChild(publish_date);
mais c'est l'erreur:
java.lang.IllegalArgumentException: Cannot format given Object as a Date
at java.text.DateFormat.format(DateFormat.java:301)
at java.text.Format.format(Format.java:157)
at fileLock.FileLock.updateLibrary(FileLock.java:127)
at fileLock.FileLock.main(FileLock.java:63)
alors, quelle est la bonne façon de convertir un Calendrier (Calendrier Grégorien) à une chaîne de caractères? Grâce
essayez de formateur.format b.getPublish_date().getTime()); la méthode de mise en forme prend une Date comme le type de paramètre
OriginalL'auteur SagittariusA | 2014-07-14
Vous devez vous connecter pour publier un commentaire.
Un
SimpleDateFormat
ne pouvez pas formater unGregorianCalendar
; il peut formater uneDate
, afin de les convertir en unDate
premier. Vous obtenez158
que le jour, carDD
est le jour de l'année, maisdd
(minuscule) est le jour du mois.Aussi, vous avez connu, vous ne pouvez pas avoir connu, mais les mois sont les numéros de 0 à 11 en Java, donc une fois formaté, mois
5
est juin, il sort comme06
.De sortie:
FYI java 8 introduit une nouvelle api pour la date et l'heure
N'est pas de "Date" obsolète maintenant?
OriginalL'auteur rgettman
Vous devez utiliser Calendrier#getTime afin d'obtenir le bon argument pour SimpleDateformat
veuillez consulter la la documentation javadoc de constructor le mois, par exemple, est basée sur 0, c'est pourquoi vous obtenez juin au lieu de l'attendre juillet
OriginalL'auteur A4L