dodoecchi Posté(e) 1 mai 2012 Share Posté(e) 1 mai 2012 Salut à tous ! Travaillant sur un projet d'emploi du temps, je me suis heurté à un souci assez étrange je récupère l'heure depuis un webservice au format unix. pour en extraire la date et l'heure j'utilise un GregorianCalendar avec setTimeInMillis problème : sur Android 2, l'heure est deux heures en avance! Mais pas avec Ice Cream Sandwich! pour mettre le problème en avant j'ai isolé le bug dans un projet de test (téléchargeable ici) ma valeur de test est 1282550400000, qui correspond au lundi 23 août 2010, à 8h00 résultats : sur mon téléphone 2.3.5 * sur l'émulateur 4.0.3 voilà la chose... je ne sais pas pour les autres versions d'android, les machines virtuelle mettent des années à démarrer donc peut être un jour ... j'ai tenté le new Date(milli), idem changer le timezone, idem quelqu'un a-t-il déja eu ce problème? je cherche une solution :( merci d'avance Dodo PS : l'affichage sur le motorola Razr donne cette espece du bordure... si quelqu'un une idée je suis preneur Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 2 mai 2012 Share Posté(e) 2 mai 2012 Il faut positionner la timezone sur SimpleDateFormat, et tu auras la bonne valeur affichée sdf.setTimezone(tz); Lien vers le commentaire Partager sur d’autres sites More sharing options...
dodoecchi Posté(e) 2 mai 2012 Auteur Share Posté(e) 2 mai 2012 Excellent! Merci beaucoup :) ...même si je comprend mal pourquoi un formatteur devrait influencer quelle heure il est :huh: Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 3 mai 2012 Share Posté(e) 3 mai 2012 Le formatter n'influe pas sur l'heure qu'il est, mais sur la représentation de celle-ci. Une Date (et sa représentation en millisecondes) correspond à un instant t, qui peut être représenté de différentes manières. Ainsi quand il est 1282550400000 depuis l'epoch Unix, on peut aussi dire que cela correspond au 23/08/2010 8h00 UTC/GMT, ou 23/08/2010 9h00 à Londres (GMT+1) ou 23/08/2010 10h00 à Paris (GMT+2) ou 22/08/2010 22h00 à Honolulu (GMT-10). Mais dans tous les cas, cela représente le même instant t Et le date formatter te permet donc de choisir la timezone dans laquelle tu veux afficher cet instant. Pour t'en rendre compte, tu peux afficher la timezone, en ajoutant ZZZ dans la chaine de format Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.