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

Python Discussion :

Parser des dates contenant des microsecondes


Sujet :

Python

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Par défaut Parser des dates contenant des microsecondes
    Hello,

    Je suis en train d'essayer de parser des dates de type "20/01/1983 12:05:01.23" avec les modules datetime et time.

    Pour ce genre de choses, j'utilise la méthode trés pratique du module time strptime(dDate,format) avec le format suivant "%d/%m/%Y %H:%M:%S".
    Mais avec la presence d'un point dans la date, une erreur est levée au moment de l'appel de la fonction car %S ne supporte les secondes que sous forme d'entier.

    Y a t il un moyen élégant avec python de parser des dates ou les secondes ne sont pas des entiers ou des flottants?


    Oliv

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Par défaut
    Bon, au final, je n'ai rien trouvé de satisfaisant donc j'ai fait ma propre fonction qui parse les dates de type numeroJour/numeroMois/annee heure:minutes:secondes.microsecondes . On peut choisir d'autres separateurs en les entrant comme arguments.

    Si quelqu un a une autre solution à ce problème, don't hesitate ;-)

    import time
    import datetime


    def parseDate (dateToParse,dateSeparator="/", hourSeparator=":",minuteSeparator=":",secondSeparator="", dayHourSeparator=" "):
    """Method which parse date of type : 20/12/2007 12:04:20.12, you can choose your format by settings your own separator"""

    dateAndHour = dateToParse.split(dayHourSeparator)
    day = dateAndHour[0].split(dateSeparator)

    dayDate = int(day[0])
    monthDate = int(day[1])
    yearDate = int(day[2])

    hours = dateAndHour[1].split(hourSeparator)
    hour = int(hours[0])
    minutes = hours[1].split(minuteSeparator)
    minute = int(minutes[0])
    if minutes[1].count(".") == 1:
    seconds =minutes[1].split(".")
    second = int(seconds[0])
    microseconds = seconds[1].rstrip(secondSeparator)
    numberOfChars = len(microseconds)
    power = 6 - numberOfChars
    microsecond = int(microseconds)
    for i in range(power):
    microsecond *=10
    else:
    second = int(minutes[1])
    microsecond = 0

    return datetime.datetime(yearDate, monthDate, dayDate, hour, minute, second, microsecond)

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/03/2010, 11h49
  2. Réponses: 2
    Dernier message: 27/10/2009, 10h36
  3. JTable contenant des JComboBox contenant des Images
    Par lex13 dans le forum Composants
    Réponses: 4
    Dernier message: 31/07/2007, 15h57

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