Joda date de formateur
Personne ne sait comment analyser une date telle que: Mon Aug 04 16:07:00 CEST 2014
pour dd/MM/YYYY HH:MM:SS
à l'aide de DateTime
formateur de Joda.
J'ai essayé ça:
final DateTimeFormatter sdf = DateTimeFormat.forPattern(DATE_FORMAT);
DateTime lastDateOnline = sdf.parseDateTime(lastCommunicationToDisplay.getDateOnLine().toString());
return lastDateOnline.toString();
DATE_FORMAT = dd/MM/YYYY HH:MM:SS
et
lastCommunicationToDisplay.getDateOnLine().toString() = Mon Aug 04 16:07:00 CEST 2014
Je ne trouve pas d'explications claires sur cette bibliothèque. Je suis demandé à l'utiliser à la place de SimpleDateFormat
car il n'est pas thread-safe.
Vous souhaitez analyser avec le format qu'il a, puis formatez-le avec le nouveau format.
Pourquoi le format jj/MM/AAAA HH:MM:SS analyser Lun Août 04 à 16:07:00 CEST 2014? Avez-vous vraiment voir un match entre le format et la chaîne? Avez-vous lu la javadoc?
Pourquoi le format jj/MM/AAAA HH:MM:SS analyser Lun Août 04 à 16:07:00 CEST 2014? Avez-vous vraiment voir un match entre le format et la chaîne? Avez-vous lu la javadoc?
OriginalL'auteur Hubert Solecki | 2014-08-04
Vous devez vous connecter pour publier un commentaire.
Solutions
Si tout ce que vous avez à faire est de convertir un LocalDate à une chaîne de caractères respectant le modèle: "jj/MM/AAAA HH:mm:ss", alors vous pouvez le faire d'une manière simple, à l'aide de la surcharge toString() méthodes sur LocalDate:
a) celui qui reçoit la chaîne de format directement:
b) celui qui reçoit un DateTimeFormatter initialisé avec la même chaîne:
Ce qui s'est passé dans votre code
La chaîne de format que vous utilisez n'est pas compatible avec la chaîne de date que vous envoyez à l'entrée. La façon dont vous avez utilisé DateTimeFormatter est utilisé pour l'analyse des chaînes de caractères qui sont dans ce format LocalDates, pas l'inverse.
Le format serait le cas si la chaîne d'entrée serait la suivante:
04/08/2014 22:44:33
Depuis vôtre regarde différemment, la valeur suivante de ce format est compatible (à condition que votre fuseau horaire est toujours CEST):
De sorte que le code devrait ressembler à ceci:
Cependant, je vous recommande l'un des 2 premières suggestions.
OriginalL'auteur Cristina