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

Langage Delphi Discussion :

Comment convertir une date en string de format timestamp ?


Sujet :

Langage Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut Comment convertir une date en string de format timestamp ?
    Salut,
    un petit souci de date,
    je recupère un format date en string de format timestamp

    exemple : 1119930901

    comment je fais pour passer en année mois jours ?

    merci d'avance

  2. #2
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Tu as essayé un cast brutal ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var Tampon : TDateTime;
    begin
      Tampon := TDateTime(StrToFloat(maChaine));
    end;
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    je connais pas ca, c'est apparemment brutal

    il me dit transtypage incorrect

    TDateTime(StrToFloat(maChaine));

    pige pas pourquoi tdatetime ?

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 299
    Points
    11 299
    Billets dans le blog
    6
    Par défaut
    il y a plusieurs formats de codage : Unix, Windows ...
    il doit y avoir des fonctions style UnixToDateTime pour convertir un timestamp en TdateTime qui est le format privilégié de Delphi, puis es fonctions DateTimeToString...
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    il y'a bien une fonction :
    UnixToDateTime

    mais comment je passe du string qui est ma valeur de départ à timestamp ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    date:= strtodatetime(ajout_date);
    date_convert := UnixToDateTime(date);

    erreur : Types incompatibles : 'Int64' et 'TDateTime'

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    j'ai trouvé ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function UnixToDateTime(USec: Longint): TDateTime;
    begin
      //Example: UnixToDateTime(1003187418);
      Result := (Usec / 86400) + UnixStartDate;
    end;
     
                   date:= strtoint(ajout_date);
                   date_convert:=UnixToDateTime(ajout_date);
    le problème c'est que j'ai une erreur d'exeption 1119930901 n'est pas uen valeur correct :

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par reg11
    j'ai trouvé ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    const  UnixStartDate: TDateTime = 25569.0;  // Sets UnixStartDate to TDateTime of 01/01/1970
     
     
    function UnixToDateTime(USec: Longint): TDateTime;
    begin
      //Example: UnixToDateTime(1003187418);
      Result := (Usec / 86400) + UnixStartDate;
    end;
     
                   date:= strtoint(ajout_date);
                   date_convert:=UnixToDateTime(ajout_date);
    le problème c'est que j'ai une erreur d'exeption 1119930901 n'est pas une valeur correct :

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    est ce quelqu'un a essaye cette fonction ?

    je la vois partout mais chez moi ca fonctionne pas

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour

    Le plus simple ne serait'il pas EncodeDate

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    An := '2005';
    Mois := '1';
    Jour := '5';
     
    Date := EncodeDate(An, mois, jour);

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    Dans mon cas, j'ai un format Unix date, donc je pense pas que EncodeDate fasse l'affaire.

  12. #12
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    C'est normal que ceci ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    date:= strtodatetime(ajout_date); 
    date_convert := UnixToDateTime(date);
    Tu passes à la fonction un TDateTime alors qu'il attend un LongInt.
    Essaye ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date_convert := UnixToDateTime(StrToInt64(ajout_date));
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    non ca fonctionne pas
    si il attend un Longint, et que je convertit en Int64, y'a problème non ?

    erreur d'exeption 1119930901 n'est pas une valeur correct,

  14. #14
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Je viens de faire un test, ce code fonctionne bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.Button1Click(Sender: TObject);
      var toto : TDateTime;
    begin
      toto := UnixToDateTime(StrToInt64('1119930901'));
      ShowMessage(DateTimeToStr(toto));
    end;
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut


    j'avais un espace quand je recuperais ma date ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    date_convert := UnixToDateTime(StrToInt64(trim(ajout_date)));
    merci MD, j'essaierai la prochaine fois d'etre plus attentif

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

Discussions similaires

  1. 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
  2. [VB6] convertire une date en string
    Par acrenn dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 03/05/2006, 17h30
  3. Convertir une date en string
    Par hugo69 dans le forum Access
    Réponses: 6
    Dernier message: 28/04/2006, 17h40
  4. []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

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