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

Modules Perl Discussion :

Conversion de dates


Sujet :

Modules Perl

  1. #1
    Membre du Club
    Inscrit en
    Mars 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 88
    Points : 59
    Points
    59
    Par défaut Conversion de dates
    Salut à tous !

    J'aimerai convertir des dates en passant du format généré par un programme en C :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Fri Aug  6 10:20:12 2004
    au format pour des données XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    2004-07-22T15:02:29.936+02:00
    Pour tout ce qui est numérique, il n'y a pas de problème, mais je ne sais pas comment récupérer le jour et le mois correspondant à leur forme littéraire.

    Est-ce qu'une fonction Perl permet de construire une date mi-littéraire pour en générer une autre dans le second format ?

    Merci de vos réponses.

  2. #2
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 50
    Points : 60
    Points
    60
    Par défaut
    Pas de fonction standarte, mais il' y a un bon module:

    Date::Format (http://search.cpan.org/~gbarr/TimeDa...Date/Format.pm).

  3. #3
    Membre du Club
    Inscrit en
    Mars 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 88
    Points : 59
    Points
    59
    Par défaut
    Ok merci !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 103
    Points : 66
    Points
    66
    Par défaut
    Le meilleur des module pour faire ca c Class:ate

    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
     
    use Class::Date qw(:errors date localdate gmdate now -DateParse);
    $date = date "2001-11-12 07:13:12";
     
    #Avec ces fonctions tu peux recupere le numero du mois et le numero du #jour et utiliser un hash pour faire la resolution litterraire
     
      $date->_mon;        # month 0..11
      $date->_month;      # same as prev.
      $date->wday;        # 1 = Sunday
      $date->_wday;       # 0 = Sunday
     
    my $mois={	0=>	'Jan',
    	    	1=>	'Feb',
    		2=>	'Mar',
    		3=>	'Apr',
    		4=>	'May',	#$date->_mon; 
    		5=>	'Jun',
    		6=>	'Jul',
    		7=>	'Aug',
    		8=>	'Sep',
    		9=>	'Oct',
    		10=>	'Nov',
    		11=>	'Dec',
        		};
    Avec ce package j'ai pu passer d'un date de ce format:
    2004-08-10 07:13:12
    à celui ci:
    tue, 10 aug 2004 07:13:12

    Voila en esperant que ca t'aide

  5. #5
    Membre du Club
    Inscrit en
    Mars 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 88
    Points : 59
    Points
    59
    Par défaut
    Salut,

    En fait le package TimeDate qu dmitry_ovsianko m'a indiqué marche très bien aussi, et de manière plus simple je pense.

    Voici le bout de code qui fait ce que je veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    my $time = str2time("$1");    # $1 = date au format ctime() de C
    my $xmldate = time2str("%Y-%m-%dT%H:%M:%S.000+02:00", $time);
    D'autre part, il suffit d'indiquer la langue pour parser la forme littéraire (je crois que ca prend par défaut la langue de la locale).

    M'enfin, merci quand même ;)

  6. #6
    Membre du Club
    Inscrit en
    Mars 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 88
    Points : 59
    Points
    59
    Par défaut
    Salut,

    En fait le package TimeDate que dmitry_ovsianko m'a indiqué marche très bien aussi, et de manière plus simple je pense.

    Voici le bout de code qui fait ce que je veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    use Date::Format;
    use Date::Parse;
     
    [...]
     
    my $time = str2time("$1");    # $1 = date au format ctime() de C
    my $xmldate = time2str("%Y-%m-%dT%H:%M:%S.000+02:00", $time);
    D'autre part, il suffit d'indiquer la langue pour parser la forme littéraire (je crois que ca prend par défaut la langue de la locale).

    M'enfin, merci quand même ;)

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

Discussions similaires

  1. Probleme de conversion de dates
    Par manu00 dans le forum Langage
    Réponses: 4
    Dernier message: 29/05/2005, 00h00
  2. Conversion de date
    Par jdu dans le forum Access
    Réponses: 2
    Dernier message: 26/01/2005, 16h17
  3. - [CAST ou CONVERT] Problème de conversion de date
    Par Boublou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/07/2004, 14h31
  4. Conversion de date lors d'un import
    Par bilbon.S dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 26/03/2004, 14h33
  5. Conversion de date et division 64 bits
    Par dway dans le forum Assembleur
    Réponses: 38
    Dernier message: 27/01/2004, 10h31

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