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

 Delphi Discussion :

GetTimeZoneInformation - Convertir une date


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2009
    Messages : 27
    Points : 38
    Points
    38
    Par défaut GetTimeZoneInformation - Convertir une date
    Bonjour

    J'ai une base de données ou j'ai un champ de type date-heure conserver avec le timezone de Paris soit 6 hrs de décalage avec nous. Comment faire afficher cette date-heure en timezone du Québec ? Il faut tenir compte de l'hrs avancé ou reculé (des fois on a que 5 hrs de décalage) et tous...

    Par exemple: Si ma date dans la base de données est 2017-09-11 13hrs (hrs suisse) , je doit avoir obtenir comme résultat 2017-09-11 07h00 (hrs Québec)

    Voici ce que j'ai fait mais j'ai que 5 hrs de décalage ça ne fonctionne pas. Quelqu'un peux m'aider

    Merci!

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    function TForm1.ConvertDatetime(pdtSuisse: TdateTime): TDateTime;
    var
      sysdt: TSystemTime;
      tZoneInfoQuebec: TTimeZoneInformation;
    begin
     
      GetTimeZoneInformation(tZoneInfoQuebec);
      tZoneInfoQuebec.Bias:= 300;
     
      {---Heure d'été -----------------}
      tZoneInfoQuebec.StandardBias:= 0;
      tZoneInfoQuebec.StandardDate.wYear:= 0;
      tZoneInfoQuebec.StandardDate.wMonth:= 11;
      tZoneInfoQuebec.StandardDate.wDay:= 1;
      tZoneInfoQuebec.StandardDate.wDayOfWeek:= 0;
      tZoneInfoQuebec.StandardDate.wHour:= 2;
     
      {---Heure d'Hiver ----------------}
      tZoneInfoQuebec.DaylightBias:= -60;
      tZoneInfoQuebec.DaylightDate.wYear:= 0;
      tZoneInfoQuebec.DaylightDate.wMonth:= 3;
      tZoneInfoQuebec.DaylightDate.wDay:= 2;
      tZoneInfoQuebec.DaylightDate.wDayOfWeek:= 0;
      tZoneInfoQuebec.DaylightDate.wHour:= 2;
     
      SysUtils.DateTimeToSystemTime(pdtSuisse,sysdt);
     
      SystemTimeToTzSpecificLocalTime(@tZoneInfoQuebec,sysdt , sysdt);
     
      Result := SysUtils.SystemTimeToDateTime(sysdt);
     
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    Var dt1 :TDateTime;
    begin
      Memo1.Lines.Add(FormatDateTime('yyyy-mm-dd hh:nn',now))  ;
      dt1 := ConvertDatetime(now);
      FormatDateTime('yyyy-mm-dd hh:nn',dt1);
      Memo1.Lines.Add(FormatDateTime('yyyy-mm-dd hh:nn',dt1))  ;
    end;

  2. #2
    Membre éprouvé
    Avatar de Cirec
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 467
    Points : 1 072
    Points
    1 072
    Par défaut
    Bonjour,

    voici ce que j'ai "bricolé" vite fait sur le sujet
    et le résultat obtenu

    Nom : TimeZoneDemo.png
Affichages : 402
Taille : 28,1 Ko

    c'est pas du top mais je pense que ça va t'aider à faire ce que tu veux.
    Cordialement,
    @+
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 29/06/2005, 10h22
  2. Convertir une date lunaire
    Par djeckelle dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 03/12/2004, 14h06
  3. []Comment convertir une date GMT en date vb ?
    Par Invité dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 11/08/2004, 16h01
  4. Convertir une date au format excel en datetime SQL server
    Par ALLB dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 20/07/2004, 11h28
  5. Convertir une date en type string
    Par ziboux dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 29/10/2003, 10h52

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