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 :

formater une date


Sujet :

Delphi

  1. #1
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut formater une date
    Bonsoir,

    Voilà j'ai une chaine de caractere qui contient une date avec l'heure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    '2006/12/12,10:45:15'
    j'aimerais ne récuperer de celle-ci que la date et la rendre au format
    'dd/mm/yyyy' ou en 'mm/dd/yyyy' puisque celle-ci est au format 'yyyy/mm/dd'
    existe-t-il une fonction qui me fait cela ?. Sinon, alors comment inverser ce format de 'yyyy/mm/dd' à 'dd/mm/yyyy' puisque j'arrive à extraire la date mais avec un peu trop de code.

    Merci pour votre aide !
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  2. #2
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 81
    Points : 86
    Points
    86
    Par défaut
    Hummm... J'ai pas regardé si y a une procédure format à l'envers ... mais j'en ai fait une en vitesse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function format(date : String) : String;
      var j, m, a : String;
    begin
      a := copy(date, 0, 4);
      m := copy(date, 6, 2);
      j := copy(date, 9, 2);
      Result := j + '/' + m + '/' + a;
    end;
    C'est pas super joli ... mais ca marche

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 81
    Points : 86
    Points
    86
    Par défaut
    Sinon : mais ca j'ai pas testé : la procédure StrToDateTime pour transformer ton string en date puis suivie de formatDateTime pour la formater comme tu veux. Seul problème, la chaine de base doit utiliser le format date/heure local. Donc dans ton cas il faudrait :

    1) changer les paramètres d'affichage date et heure local (je sais plus la fonction)
    2) Faire le StrToDateTime
    3) faire le formatDateTime
    4) rétablir les paramètres locaux initiaux.

    J'espère que ca t'a aidé

    Au plaisir

  4. #4
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    merci beaucoup hy00ga
    Ta premiere solution marche trés bien c'est ce que je souhaitais par contre avec la deuxieme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var
    d:tdatetime;
    s:string;
    begin
     
    d:=StrToDateTime('2006/12/12,10:45:15');
    s:=formatDateTime('dd/mm/yyyy',d);
    showmessage(s);
    end;
    J'obtiens un message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    '2006/12/12,10:45:15' is not a valid date and time
    Mais en tous cas je suis content puisque la 1ere marche nickel !

    Merci encore !
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  5. #5
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Il ne faut pas de virgule entre la date et l'heure

    Sinon tu peux utiliser le paramètre FormatSettings dans StrToDateTime.
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

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

Discussions similaires

  1. formater une date dans un gridview
    Par intissar_g dans le forum ASP.NET
    Réponses: 8
    Dernier message: 09/07/2007, 16h02
  2. [Dates] Formater une date
    Par miltonis dans le forum Langage
    Réponses: 3
    Dernier message: 25/04/2007, 19h15
  3. Réponses: 3
    Dernier message: 18/11/2006, 21h44
  4. [Dates] formater une date
    Par mikebranque dans le forum Langage
    Réponses: 4
    Dernier message: 08/06/2006, 23h19

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