Forum Programmation.perl date en milliseconde

Posté par  .
Étiquettes : aucune
0
20
avr.
2005
Bonjour,


Je voudrais savoir si quelqu'un connaissait le moyen en Perl pour connaître le temps en milliseconde depuis 1970 puis pour l'afficher avec un formatage "classque". La fonctions time() donne ce temps mais seulement en seconde. Je peux biensur faire une multiplication, mais je voudrais le temps précis.


J'ai essayé de me tourner vers le module DateTime mais je ne trouve pas de fonction de la sorte.

Merci
  • # Re:

    Posté par  . Évalué à 3.

    perldoc Date::Format
    • [^] # Re: Re:

      Posté par  . Évalué à 1.

      merci, mais à priori, le traitement de la date n'est qu'en seconde.
  • # Time::HiRes

    Posté par  . Évalué à 1.

    Légèrement hors-topic...

    Mais ca peut aider

    http://search.cpan.org/~jhi/Time-HiRes-1.66/HiRes.pm(...)
    • [^] # Re: Time::HiRes

      Posté par  . Évalué à 1.

      intéressant ce module...



      #!/usr/bin/perl -w
      use Time::HiRes;

      print Time::HiRes::gettimeofday();


      me rend le temps en micoseconde depuis 1970.
      soit un nombre à 16 chiffres... (il y en a 3 de trop!)
      je vais continuer à chercher... je pourrais effectivement peut-être supprimer les 3 derniers chiffres pour avoir les millisecondes, mais lorsque je voudrai faire de l'affichage je ne pourrai pas faire l'opération inverse.
  • # date

    Posté par  . Évalué à 1.

    my $now = `date +%s`;
    • [^] # Re: date

      Posté par  . Évalué à 2.

      bon, ma réponse est un peu hâtive:
      il vaut mieux appeler les fonctions système avec un chemin absolu

      sinon:

      echo ' #!/bin/bash ; echo "0wn3d" ' > date
      chmod +x date
      export PATH=.
      perl -e " my $now = system('date','+%s');
      • [^] # Re: date

        Posté par  . Évalué à 3.

        hihihi
        • [^] # je vous autorise tous et toutes à vous ficher de ma poire allègrement...

          Posté par  . Évalué à 1.

          ...
          • [^] # Re: je vous autorise tous et toutes à vous ficher de ma poire allègremen

            Posté par  . Évalué à 3.

            je rigole juste à ta démonstration de sécurité qui n'est pas forcément explicite pour tout le monde. Moi j'ai vu le truc, je pensais pas que c'était à titre de démonstration de pour quoi faut pas le faire... je croyais que tu voulais faire une vielle blague...



            En écrivant me revient à la mémoire qqchose, j'irais plus loin que toi.

            Il faut le rapeller que system() est dangeureux même en mettant un chemin absolu quelque soit le langage. Pour ceux que ça interessent voir les problèmes avec la variable d'environnement IFS.

            Ta démonstration est applicable à un poil prêt (IFS) même avec un chemin absolu
    • [^] # HS!

      Posté par  . Évalué à 2.

      en plus je suis à côté de la plaque avec mon +%s...
      toutes mes excuses. Je suis vraiment fatigué aujourd'hui...
      • [^] # Re: HS!

        Posté par  . Évalué à 2.

        "date +%s" donne la date en seconde. Je voudrais l'avoir en milliseconde comme le fait gettimeofday() en languge C je crois.

        Je suis en train d'essayer le module Time::HiRes.. je vais voir ce que cela donne.
        • [^] # Re: HS!

          Posté par  . Évalué à 1.

          date +%s.%N

          date (coreutils) 5.0.91
          Written by David MacKenzie.
          • [^] # Re: HS!

            Posté par  . Évalué à 1.

            Merci !

            C'est même 1000 fois plus précis qu'à la milliseconde...

            Enfin, perso je gére dorénavant les dates en seconde... il fallait choisir un format commun à toutes mes applis...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.