J'ai un jeu de données où toutes les dates ont le format suivant:
2012-10-09T19:00:55Z
J'aimerais pouvoir utiliser des méthodes comme .weekday
sur elles. Comment puis-je les convertir au bon format en Python?
Vous pouvez utiliser dateutil.parser.parse
pour analyser les chaînes en objets datetime.
_dateutil.parser.parse
_ tentera de deviner le format de votre chaîne. Si vous connaissez le format exact à l’avance, vous pourrez utiliser datetime.strptime
auquel vous fournissez une chaîne de format (voir Brent Washburne). répondre).
_from dateutil.parser import parse
a = "2012-10-09T19:00:55Z"
b = parse(a)
print(b.weekday())
# 1 (equal to a Tuesday)
_
Ceci a déjà été répondu ici: Comment traduire une chaîne datetime ISO 8601 en un objet datetime Python?
d = datetime.datetime.strptime( "2012-10-09T19:00:55Z", "%Y-%m-%dT%H:%M:%SZ" )
d.weekday()
Vous devriez jeter un oeil sur moment
qui est un port python de l'excellente libs js momentjs
.
Un de ses avantages est la prise en charge des formats de chaînes ISO 8601
, ainsi que d’un "% format" générique:
_import moment
time_string='2012-10-09T19:00:55Z'
m = moment.date(time_string, '%Y-%m-%dT%H:%M:%SZ')
print m.format('YYYY-M-D H:M')
print m.weekday
_
Résultat:
_2012-10-09 19:10
2
_