dodoecchi Posted May 1, 2012 Share Posted May 1, 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 Link to comment Share on other sites More sharing options...
chpil Posted May 2, 2012 Share Posted May 2, 2012 Il faut positionner la timezone sur SimpleDateFormat, et tu auras la bonne valeur affichée sdf.setTimezone(tz); Link to comment Share on other sites More sharing options...
dodoecchi Posted May 2, 2012 Author Share Posted May 2, 2012 Excellent! Merci beaucoup :) ...même si je comprend mal pourquoi un formatteur devrait influencer quelle heure il est :huh: Link to comment Share on other sites More sharing options...
chpil Posted May 3, 2012 Share Posted May 3, 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 Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.