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

Qt Discussion :

Date erronée à cause du fuseau horaire


Sujet :

Qt

  1. #1
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut Date erronée à cause du fuseau horaire
    Bonjour tout le monde,
    J'ai développé une application qui récupère des mesures de glycémie depuis le lecteur. La procédure commence par la récupération de la date et heure du lecteur qui sont ajustées selon le fuseau horaire local.
    Le problème c'est que lorsque je récupère la date du lecteur sous forme du nombre de secondes et que je formule la date à afficher comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this->deviceDateTime = QDateTime::fromString("01/01/1970 00:00:00", "dd/MM/yyyy hh:mm:ss").addSecs(nombre);
    la date affichée est toujours incrémentée d'1 heure. Ceci est du principalement au fuseau horaire.
    J'ai essayé d'utiliser Qt::TimeSpec mais les 2 options n'ont rien donné.
    Sachant que si je formule la date en diminuant le nombre de seconde de 3600 (1heure), la date affichée est correcte.
    Je travaille sous Visual Studio / Qt4.3
    Merci de votre aide précieuse.

  2. #2
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut
    J'ai trouvé ça qui m'a beaucoup aidé
    https://bugreports.qt-project.org/browse/QTBUG-71
    Et voici mon code que j'ai utilisé en espérant que ça aidera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    // déterminer le timezone de la date du lecteur par rapport à l'heure universelle
    	QDateTime dt = QDateTime::fromString("01/01/1970 00:00:00", "dd/MM/yyyy hh:mm:ss").addSecs(nombre);
     
    	QDateTime utc(dt);
        utc.setTimeSpec(Qt::UTC);
     
    	int timezoneSeconds = dt.secsTo(utc);
     
    	QChar sign = (timezoneSeconds >=0 ? QLatin1Char('+') : QLatin1Char('-'));
     
    	if (timezoneSeconds < 0)
            timezoneSeconds = -timezoneSeconds;
     
    	int timezoneMinutes = (timezoneSeconds % 3600) / 60;
     
    	int timezoneHours = (timezoneSeconds / 3600);
     
    	//calculer la date du lecteur à partir du 01/01/1970 00:00:00
    	this->deviceDateTime.setTime_t(nombre - timezoneSeconds);

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/10/2008, 07h34
  2. Réponses: 1
    Dernier message: 29/10/2007, 12h43
  3. Réponses: 1
    Dernier message: 09/01/2007, 15h33
  4. [Dates] Changer le fuseau horaire
    Par nanomag dans le forum Langage
    Réponses: 1
    Dernier message: 12/07/2006, 14h34
  5. Date - fuseau horaire
    Par sparton dans le forum Collection et Stream
    Réponses: 16
    Dernier message: 11/01/2006, 15h46

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