Question

Quelqu'un sait comment analyser le format tel que décrit dans le titre en utilisant la méthode strptime Pythons?

J'ai quelque chose de similaire à ceci:

import datetime    
date = datetime.datetime.strptime(entry.published.text, '%Y-%m-%dT%H:%M:%S.Z')

Je ne peux pas sembler comprendre quel genre de timeformat c'est. Soit dit en passant, je suis un débutant à la langue Python (je suis habitué à C #).

UPDATE

Voici comment je l'ai changé le code basé sur les conseils (réponses) ci-dessous:

from dateutil.parser import *
from datetime import *
date = parse(entry.published.text)
Était-ce utile?

La solution

Cette date est dans la norme ISO 8601, ou plus précisément , format.

Ces dates ne peuvent pas être analysés avec strptime. Il y a un problème Python qui traite de ce sujet.

dateutil.parser.parse peut gérer une grande variété de dates, y compris celui de votre exemple.

Si vous utilisez un module externe pour XML ou RSS parsing, il y a probablement une routine là pour analyser cette date.

Autres conseils

Voici une bonne façon de trouver la réponse: en utilisant strftime, construire une chaîne de format qui va émettre ce que vous voyez. Cette chaîne sera, par définition, la chaîne nécessaire pour analyser le temps avec strptime.

Si vous essayez d'analyser les flux RSS ou Atom utilisez Universal RSS Parser . Il prend en charge beaucoup de date / formats de temps .

>>> import feedparser                 # parse feed
>>> d = feedparser.parse("http://stackoverflow.com/feeds/question/3946689")
>>> t = d.entries[0].published_parsed # get date of the first entry as a time tuple
>>> import datetime
>>> datetime.datetime(*t[:6])         # convert time tuple to datetime object
datetime.datetime(2010, 10, 15, 22, 46, 56)

C'est le format datetime XML standard, ISO 8601. Si vous utilisez déjà une bibliothèque XML, la plupart d'entre eux ont datetime parseurs construit. xml.utils.iso8601 fonctionne raisonnablement bien.

import xml.utils.iso8601
date = xml.utils.iso8601.parse(entry.published.text)

Vous pouvez regarder un tas d'autres façons de régler ce ici: http://wiki.python.org/moin/WorkingWithTime

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top