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

VB 6 et antérieur Discussion :

[]Comment convertir une date GMT en date vb ?


Sujet :

VB 6 et antérieur

  1. #1
    Invité
    Invité(e)
    Par défaut []Comment convertir une date GMT en date vb ?
    Bonjour,

    J'ai 4 octets (unsigned long) qui représentent une date GMT.

    Comment puis-je convertir ces 4 octets en une chaine au format "11/08/2004" par exemple ?

  2. #2
    Teb
    Teb est déconnecté
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    la fonction CDate, ne fonctionne pas dans ton cas?

  3. #3
    Membre actif Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Points : 233
    Points
    233
    Par défaut
    D'où viennent c'est 4 octets? Essaye avec les valeurs ascii :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    date_fr = chr(mid(date_gmt,1,1) & "/" & chr(mid(date_gmt,2,1) & "/" & chr(mid(date_gmt,3,1) & "/" & chr(mid(date_gmt,4,1)

  4. #4
    Invité
    Invité(e)
    Par défaut Complément d'info
    Les 4 octets sont un unsigned long qui représente le nombre de secondes depuis le 01/01/1970

  5. #5
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim d As Date
    d = CDate(octet0 + octet1 * 256 + octet2 * 65536 + octet3 * 16777216)
    Dans cet exemple, l'octet0 est l'octet de poids faible.
    Avant de poser une question, merci de chercher dans les rubriques suivantes:
    FAQ VB
    Tutoriaux VB
    Recherche avancée sur le forum

  6. #6
    Invité
    Invité(e)
    Par défaut Pas ça du tout
    Il suffit de regarder la doc de CDate pour voir que CDate(un long) ne donne rien.

    Si on essaye, on vérifie bien que ça ne fonctionne pas.

    J'ai déjà la date, il me reste les heures

    En entrée, j'ai lgDate, un long qui contient mes 4 octets
    En sortie, je renvoie dateRetour qui est de type Date()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dateDebut = DateSerial(1970, 1, 1)
    Dim nNbJours As Long
    nNbJours = CLng(lgDate / 86400)
    dateRetour = dateDebut + nNbJours
    Il ne reste plus que les heures

  7. #7
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Et comme çà ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim d As Date
    d = DateAdd("s", octet0 + octet1 * 256 + octet2 * 65536 + octet3 * 16777216, DateSerial(1970, 1, 1))
    Avant de poser une question, merci de chercher dans les rubriques suivantes:
    FAQ VB
    Tutoriaux VB
    Recherche avancée sur le forum

  8. #8
    Invité
    Invité(e)
    Par défaut
    C'est ce que j'avais écrit mais en plus joli.

    Je garde cette solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dateRetour = DateAdd("s", CDbl(lgDate), DateSerial(1970, 1, 1) + TimeSerial(2, 0, 0))
    Merci !

    Nb : je ne sais pas pourquoi, mais il faut que je décale de exactement 2 heures pour avoir la bonne heure.

  9. #9
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Citation Envoyé par Kaji
    Nb : je ne sais pas pourquoi, mais il faut que je décale de exactement 2 heures pour avoir la bonne heure.
    France (été) = GMT + 2
    Avant de poser une question, merci de chercher dans les rubriques suivantes:
    FAQ VB
    Tutoriaux VB
    Recherche avancée sur le forum

  10. #10
    Invité
    Invité(e)
    Par défaut Et en hiver ?
    Et en hiver, France (hiver) = GMT + combien ?

  11. #11
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    GMT + 1 en hiver
    Avant de poser une question, merci de chercher dans les rubriques suivantes:
    FAQ VB
    Tutoriaux VB
    Recherche avancée sur le forum

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

Discussions similaires

  1. help comment convertir une date à une annee sur sharpoint
    Par liloucheM dans le forum SharePoint
    Réponses: 2
    Dernier message: 02/07/2015, 09h32
  2. Comment convertir une date de Java à SQL
    Par khadi8 dans le forum Persistance des données
    Réponses: 2
    Dernier message: 04/01/2012, 10h48
  3. Convertir une date GMT en date locale
    Par olibara dans le forum C#
    Réponses: 3
    Dernier message: 01/12/2008, 23h48
  4. Comment convertir une date MySQL au format francophone ?
    Par bilane dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 11/09/2006, 10h44
  5. Réponses: 14
    Dernier message: 29/06/2005, 10h22

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