IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Date, décalage de 2heures [Dev Android]


Sujet :

Android

  1. #1
    Membre du Club
    Inscrit en
    Mai 2011
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 62
    Points : 40
    Points
    40
    Par défaut Date, décalage de 2heures [Dev Android]
    Bonjour,

    Je débute en développement android et je souhaite convertir une date provenant d'un format compliqué (ex : Tue, 23 Sep 2014 13:09:05 GMT ) en formatvplus simple et français comme : 23 septembre à 13h09.

    pour toutes les dates le résultat obtenu est correct, pour tous les éléments sauf l'heure ou il y a 2 heure de plus a chaque fois dans mon nouveau format. dans le cas du première exemple de date, a la place de 13h09 j'ai 15h09.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    				Date laDate = new Date(chaineDeDate);
    				SimpleDateFormat sdf = new SimpleDateFormat("d MMM 'à' HH'h'mm");
    	                         String bonneDate = sdf.format(laDate);
    				Log.d("DEBUG",bonneDate);
    Merci de vos lumières

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Quand on converti une heure "GMT" (heure de Greenwich) vers une heure "locale" (Paris p.ex), on prend déjà 1h de décalage...

    Quand en plus on ajoute le "daylight saving time" (heure d'été en français), ça fait une heure de plus... donc 2...

    Elles sont là tes 2h
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  3. #3
    Membre du Club
    Inscrit en
    Mai 2011
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 62
    Points : 40
    Points
    40
    Par défaut
    C'est ce que je me disais ^^"

    Mais comment résoudre ce problème ? ajouter 2h ?

  4. #4
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Quel problème?

    Quand il était 15h à Greenwich, il était 17h chez toi... C'est ce que t'as récupéré...

    Moi je ne vois pas de problème... Si l'idée c'est de supprimer tout notion de timezone, tu peux t'appuyer sur les méthodes de la classe Calendar: surtout le ZONE_OFFSET

    Mais franchement y'a pas d'intérêt, si tu manipules des heures explicitement sur le timezone GMT, puis que tu les affiches dans le tien de timezone, c'est normal que tu ne voies pas la même chose.

    Téléphone à un pote anglais et demande lui l'heure qu'il est, il va pas te convertir ça sur ton fuseau horaire. Java, lui, si
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  5. #5
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Chaque objet Date sur Android est créé avec la timezone du terminal, ce qui peut être embêtant lorsque l'on souhaite manipuler uniquement du GMT.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  6. #6
    Membre du Club
    Inscrit en
    Mai 2011
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 62
    Points : 40
    Points
    40
    Par défaut
    Merci à vous problème résolu

  7. #7
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Pour répondre à Hizin, et pour être précis....

    En Java l'objet "Date" contient une date absolue (en l'occurence le nombre de millisecondes écoulées depuis le 1er Janvier 1970 à 00:00:00 GMT ).
    Il peut donc être manipulé sans crainte et passé (en "long") d'un terminal à un autre sans soucis, quelque soit la timezone sur lequel le terminal tourne, la date est absolue et identique.

    La représentation (chaine ou "Calendar") de cette date par contre va varier d'un terminal à un autre, et même sur le même terminal, pour peu que celui-ci se déplace d'une time-zone à une autre....
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  8. #8
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Merci
    Je n'avais pas eu le temps d'aller au fond de l'affaire lorsque j'ai été confronté à ce comportement.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Dev Android : JQueryMobile / Phonegap
    Par samateso dans le forum Android
    Réponses: 0
    Dernier message: 14/12/2011, 10h03
  2. Réponses: 2
    Dernier message: 03/12/2011, 19h11
  3. [Dates] Décalage d'heure par rapport au serveur
    Par Sayrus dans le forum Langage
    Réponses: 2
    Dernier message: 13/04/2008, 11h42
  4. [Date] Décalage au passage à l'heure d'hiver
    Par tatia34 dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 06/12/2007, 14h47
  5. [Dates] décalage heure gmt
    Par omelhor dans le forum Langage
    Réponses: 3
    Dernier message: 26/03/2007, 12h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo