2010-10-30 7 views

Répondre

1

C'était pour l'alimentation de l'API de données Python Google Calendar et il a été beaucoup de travail parce que la bibliothèque de datetime Python ne supporte pas la norme ISO 8601: http://wiki.python.org/moin/WorkingWithTime

En outre, si vous transmettez des dates avec fuseau horaire .000Z au calendrier Google il ignorera DST (Daylight Savings Time) pour les événements qui se produisent dans EDT et d'autres (donc les choses seront hors d'une heure pour les parties de l'année.)

Voici ma solution: En supposant que start_time et end_time sont timezone aware datetime objets .datetime:

 
    timezone_string = start_datetime.strftime('%z')[0:3] + ":" + start_datetime.strftime('%z')[3:6]  
    start_time = start_datetime.strftime('%Y-%m-%dT%H:%M:%S' + timezone_string) 
    end_time = end_datetime.strftime('%Y-%m-%dT%H:%M:%S' + timezone_string) 

Notez que stftime ("% z") n'inclut pas ce caractère ":" pour séparer les heures/minutes du décalage requis par l'API de calendrier de Google.

Questions connexes