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 Perl Discussion :

Convertion de plusieurs formes date a une forme unique!!!


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Convertion de plusieurs formes date a une forme unique!!!
    salut tt le monde!!

    Je veux obtenir une format unique pour stocker les valeurs des champs date_heure dans ma base donnee mysql, car le champ date_heure dans cette base est de la forme: 2004-02-09 12:34:00
    Et les champs que je traite avec perl peuvent avoir plusiqurs formes !
    -15/03/2004 10:10:10
    -2004/03/15 10:10:10
    -3/15/2004 10:10:10
    -Mar/15/2004 10:10 AM
    etc...
    J ai une fonction qui teste la validite de ces champs, cad quelles respectent bien la format date_heure. Il me reste juste de convertir ces dates a la forme souhaitee pour les enregistreés ds ma bdmysql. :

    si qq 1 parmis vous peux m'aider je le serais le bienvenu et merci

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    tu peux t'amuser avec les regex ou voir coté CPAN s'il ya un module (ex: date::convert, etc ...!!!
    une regex ferais l'affaire (mais faudrait connaitre tous les format suceptible d'etre recontrés).
    Fait déjà cette liste, et on t'aidera

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Les differents formats date_heure que j'ai!
    bonjour!
    tt d'abord j aimerais bien vs remercie pr votre aide!
    Pour les differents formats date_heure que je traite, pour pouvoir les transformées a une seul forme unique qui respecte mon champ date_heure de ma base de donnée sont:

    -jj/mm/aaaa hh/mn/sec exp: 15/03/2004 10:10:10
    -aaaa/mm/jj hh/mn/sec exp: 2004/03/15 10:10:10
    -mm/jj/aaaa hh/mn/sec exp: 03/15/2004 10:10:10
    -mm/jj/aaaa hh/mn exp: 03/15/2004 10:10
    -aaaammjjhhmnsec exp: 200403151010
    -mm/jj/aaaa hh/mn AM exp: Mar/15/2004 10:10 AM

    Or la forme de champ de ma base de donnée est:
    -2004/03/15 10:10:10

  4. #4
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut Re: Les differents formats date_heure que j'ai!
    Bonjour,
    C'est juste pour te signaler un problème, les deux formats :
    Citation Envoyé par badrogi
    -jj/mm/aaaa hh/mn/sec exp: 15/03/2004 10:10:10
    -mm/jj/aaaa hh/mn/sec exp: 03/15/2004 10:10:10
    ne pourront être différencier pour les 12 premiers jours du mois :

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut Re: Les differents formats date_heure que j'ai!
    Citation Envoyé par badrogi

    -jj/mm/aaaa hh/mn/sec exp: 15/03/2004 10:10:10
    -aaaa/mm/jj hh/mn/sec exp: 2004/03/15 10:10:10
    -mm/jj/aaaa hh/mn/sec exp: 03/15/2004 10:10:10
    -mm/jj/aaaa hh/mn exp: 03/15/2004 10:10
    -aaaammjjhhmnsec exp: 200403151010
    -mm/jj/aaaa hh/mn AM exp: Mar/15/2004 10:10 AM

    Or la forme de champ de ma base de donnée est:
    -2004/03/15 10:10:10
    en effet comme le signale gege, il sera difficile de differencier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    -jj/mm/aaaa hh/mn/sec exp: 05/03/2004 10:10:10
    et
    -mm/jj/aaaa hh/mn/sec exp: 03/05/2004 10:10:10
    on sera pas distinguer le mois du jour (sauf si l'un est plus grand que 12).... sinon le reste serait faisable.
    D'ou te provient ces differentes dates?
    Du devrait regler un peu ce souci, sinon on pourra rien faire à part prendre le risque de mettre des dates fausses dans ta base
    ex : 3 mai 2005 au lieu de 5 mars 2005 (ça craint un peu !!!)

  6. #6
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Oui vous avez raison!!
    Oui vous avez raison, il aura une confusion entre ces deux types de date, donc j ai pas de solution pour ce problem sauf si je vais eleminer le test sur le premier cas qui est:
    -jj/mm/aaaa hh/mn/sec exp: 15/03/2004 10:10:10

    Et je vais garder le testt sur les autres cas!!

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    tu les recuperes ou ces dates??

  8. #8
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Citation Envoyé par djibril
    tu les recuperes ou ces dates??
    +1.
    Apparemment, tu récupères ces dates d'un CGI. N e serait-il pas pas plus simple d'imposer dès l'entrée un standard sur les dates ?

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  9. #9
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Je les recuperent d'un fichier, txt!
    En realite, je traite des information dans un fichier texte, parmis ces infoemations il y a le champ date_heure qui peux etre sous plusieurs formes, selon le fichier traité, je recupere tt ces informations ds la base de donnée avec le test sur le format du champ date_heure!!

  10. #10
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Ne serait-il pas plus simple de déterminer une fois pour toute de quelle forme est la date dans chaque type de fichier ? Quitte à automatiser cette détermination.

    --
    Jedaï

  11. #11
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Citation Envoyé par Jedai
    Ne serait-il pas plus simple de déterminer une fois pour toute de quelle forme est la date dans chaque type de fichier ? Quitte à automatiser cette détermination.

    --
    Jedaï
    tout a fait d'accord, si tu es sûr que dans un fichier donné tu as des dates à un même format. Tu peux automatiser le conversion suivant les fichiers.
    PAr ex : pour tout fichier patate tu as ce format de date; alors que pour les fichiers toto, c'est celui-ci.
    voilou!!

  12. #12
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 11
    Points : 6
    Points
    6
    Par défaut A oui tt a fais logiqye!
    Oui, bien sur, chaque fichier que je traite a une forme unique pour ces champs date_heure, donc il me suffira chaque fois que je traite un fichier de savoir en avance la forme de leurs chapms date_heure et de les convertir vers la forme souhaitée qui respecte mon champ de base de donnée.

  13. #13
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Vous etes ou?????????? Suis bloque!!
    salut !
    Ca fait plus de 20jours, et personne m a aider pour resoudre le meme probleme de la conversion de la date!!
    suis vraiment bloque et j'esper que vous pouvez m aider a resouidre ca!

  14. #14
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut Re: A oui tt a fais logiqye!
    Citation Envoyé par badrogi
    Oui, bien sur, chaque fichier que je traite a une forme unique pour ces champs date_heure, donc il me suffira chaque fois que je traite un fichier de savoir en avance la forme de leurs chapms date_heure et de les convertir vers la forme souhaitée qui respecte mon champ de base de donnée.
    T'avais toi même donner la solution à ton probleme non
    Alors je vois plus le souci!!!
    t'en ai où alors??

  15. #15
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Probleme de conversion!
    Mon probleme est comment puis-je faire pour convertir tous les champs date_heure d'un fichier, vers une format unique qui respecte min champ date heure de ma base de donnée.

  16. #16
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut Re: Probleme de conversion!
    Citation Envoyé par badrogi
    Mon probleme est comment puis-je faire pour convertir tous les champs date_heure d'un fichier, vers une format unique qui respecte min champ date heure de ma base de donnée.
    Il me semble que tu as déjà reçu des réponses, à ce sujet.

    Néanmoins, on va reprendre :

    - Tu lis ton fichier,
    - Pour chaque champ date_heure, tu applique l'expression rationnelle qui va bien pour récupérer les informations
    - Tu concatènes ces informations au format qui t'intéresse
    - Tu balance ça à ta base de données.


    Si ce sont les expressions rationnelles qui te freinent, je t'en donne une, pour commencer :

    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
     # mm/jj/aaaa hh/mn AM exp: Mar/15/2004 10:10 AM
     
    my %nom_mois = (Jan => 1, Feb => 2, Mar => 3, Apr => 4);
    # Do it yourself pour completer les hash de conversion !
    my $date = "Mar/15/2004 10:10 AM";
     
    my ($mois, $jour, $annee, $heure, $minute, $AM) = ($date =~ m_(\w{3})/(\d{2})/(\d{4}) (\d{2}):(\d{2}) (\w{2})_);
    my $seconde=0;
     
    $heure+=12 if ($AM eq 'AM');
     
    $date = printf ("-%d/%02d/%02d %02d:%02d:%02d",
                          $annee, $mois, $jour,
                          $heure, $minute, $seconde);
     
    # Inserer la $date dans la base ...
    Ce code n'est pas testé, mais n'est probablement pas loin de la vérité ... A toi de construire les RE qui vont bien selon le format rencontré.

    Ceci dit, cela a aussi été évoqué, et plutôt que de réinventer de nouveaux bogues avec l'usage de formats divers, autant se servir des modules CPAN de conversion de date !
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/08/2012, 08h24
  2. Réponses: 8
    Dernier message: 07/11/2011, 23h38
  3. Réponses: 4
    Dernier message: 16/05/2006, 23h15
  4. Une Form qui retourne une valeur?
    Par say dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/02/2006, 10h05
  5. [VB.NET] Activer procédure d'une form à partir d'une autre
    Par ricil78 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 02/05/2004, 14h52

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