Android 2.3 a été récemment publié la nuit dernière. Donc, naturellement, j'ai essayé mon application à ce sujet et j'ai constaté qu'il y avait un problème de formatage de la date. J'ai remarqué que le DateFormatter produit différents formats. Donc faire dans un programme Java simple:TimeZone cassé dans SimpleDateFormat dans android 2.3
((SimpleDateFormat)DateFormat.getDateTimeInstance(DateFormat.LONG,
DateFormat.LONG)).format(new Date());
sortie est
7 Décembre, 2010 11:49:40 EST
Faites la même chose dans un émulateur Android et vous obtenez
7 Décembre, 2010 11:42:50 GMT-05: 00
Notez le fuseau horaire différent. Est-ce que quelqu'un a couru à ce problème? Y at-il un autre formateur que je peux utiliser qui ne dépend pas de l'implémentation de Java?
EDIT: Ok, donc voici plus en détail les raisons pour lesquelles je pense que cela est cassé:
En utilisant ce code:
private final DateFormat format =
new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");
J'ai essayé d'analyser une date, mais l'erreur suivante est lancée :
12-07 12:55:49.556: ERROR/DateDeserializer(847): Error when parsing date
java.text.ParseException: Unparseable date: "Mon, 06 Dec 2010 17:13:35 EST"
at java.text.DateFormat.parse(DateFormat.java:626)
at com.currency.mobile.client.DateDeserializer
.deserialize(DateDeserializer.java:31)
at com.currency.mobile.client.DateDeserializer
.deserialize(DateDeserializer.java:19)
at org.codehaus.jackson.map.deser.SettableBeanProperty
.deserialize(SettableBeanProperty.java:149)
ps, si je puis supprimer EST et z tout fonctionne –