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

Composants VCL Delphi Discussion :

[D7] Date/Heure UTC vers Local à une date passée


Sujet :

Composants VCL Delphi

  1. #1
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut [D7] Date/Heure UTC vers Local à une date passée
    Bonjour,

    J'ai un bout de code que j'utilise depuis longtemps pour convertir une date/heure UTC en Date/Heure locale.
    Jusque là je m'en servait principalement sur la date/heure du jour.

    Mais aujourd'hui je dois faire la même chose sur une date passée.
    Or je remarque que le décalage heure d'été se fait systématiquement sur la date du jour et non sur la date fournie.

    Par exemple la date du 20 décembre à 13h va me rendre l'heure local sur 15h (car nous sommes actuellement sur l'heure d'été) alors que ce jour là, c'était l'heure d'hiver cela devrait être 14h.

    Je cherche à résoudre ce problème.

    La routine en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class function TIso8601.UtcToLocal(const Utc: TDateTime): TDateTime;
    var LocalSystemTime, UtcSystemTime : TSystemTime;
        LocalFileTime, UtcFileTime : TFileTime;
    begin
      DateTimeToSystemTime(Utc, UtcSystemTime);
      SystemTimeToFileTime(UtcSystemTime, UtcFileTime);
     
      if (FileTimeToLocalFileTime(UtcFileTime, LocalFileTime)) and (FileTimeToSystemTime(LocalFileTime, LocalSystemTime)) then
        Result := SystemTimeToDateTime(LocalSystemTime)
      else
        Result := Utc;
    end;

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    regarde ici

    https://stackoverflow.com/questions/...t-it-back-from

    tu as évidemment la solution System.DateUtils, mais pas en D7

    donc SystemTimeToTzSpecificLocalTime et TzSpecificLocalTimeToSystemTime
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    C'est exactement ce qu'il me fallait.
    Merci.

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

Discussions similaires

  1. [Toutes versions] Heure UTC vers heure locale
    Par Morveus dans le forum Excel
    Réponses: 1
    Dernier message: 28/07/2009, 09h50
  2. transformer une heure UTC en Local
    Par claude dans le forum Oracle
    Réponses: 4
    Dernier message: 27/01/2009, 11h11
  3. Heure UTC vers LocalTime
    Par Louis Griffont dans le forum Debian
    Réponses: 7
    Dernier message: 08/04/2008, 13h13
  4. Réponses: 2
    Dernier message: 19/07/2007, 11h50
  5. [Dates] Conversion heure GMT vers heure local
    Par ggjedi dans le forum Langage
    Réponses: 3
    Dernier message: 19/10/2006, 10h17

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