2011-08-22 5 views
8

Voici un exemple de la façon dont l'API Graph Facebook est de retour de string date pour moi:Parse FB Graph chaîne de date API en datetime python

2011-03-06T03: 36: 45 + 0000

comment pourrais-je analyser ceci dans une classe datetime python? Je suis conscient de la fonction datetime.strptime, qui prend un deuxième paramètre qui contient une chaîne de format googly-eyed, mais ne sait pas quelles lettres et tirets à inclure.

Répondre

13

Ici, il est temps & strptime:

>>> time.strptime('2011-03-06T03:36:45+0000', '%Y-%m-%dT%H:%M:%S+0000') 
time.struct_time(tm_year=2011, tm_mon=3, tm_mday=6, tm_hour=3, tm_min=36, tm_sec=45, tm_wday=6, tm_yday=65, tm_isdst=-1) 

ou datetime:

>>> datetime.datetime.strptime('2011-03-06T03:36:45+0000','%Y-%m-%dT%H:%M:%S+0000') 

Comme vous le voyez, il retourne le time_struct avec les champs remplis correctement.

Voici une traduction du format:

  • % Y = année avec le siècle (2011)
  • % m = mois w/zéro
  • % d = jour w/zéro
  • % H = heure w/zéro en tête, 24 heures
  • % M = minute
  • % S = seconde
  • T, - et: sont utilisés comme délimiteurs, et inclus comme des chaînes littérales
  • +0000 est à nouveau inclus comme une chaîne littérale
+0

Cela a fonctionné avec brio ... Merci pour la restauration à ma paresse :) Non –

+0

problème ... cette fois haha. Imaginé un bref résumé comme ceci pourrait être ce que les autres recherchent. – shelhamer

1
In [10]: datetime.datetime.strptime('2011-03-06T03:36:45+0000','%Y-%m-%dT%H:%M:%S+0000') 

Out[10]: datetime.datetime(2011, 3, 6, 3, 36, 45)