Umwandlung struct_time in datetime

Veröffentlich am 22.02.2009, 21:19

Ich habe heute mal wieder ein paar Zeilen für django-gitweb getippt. Dabei ist mir aufgefallen, dass GitPython für die Zeitstempel der Commits ein time.struct_time verwendet und nicht, wie erwartet, ein datetime-Objekt.

Nicht sehr angenehm, wenn man einige Tools von Django - wie zum Beispiel timesince - nutzen möchte.

Nachdem ich ein wenig herumprobiert habe, fand ich doch einen sehr einfach Weg, diese time.struct_time in datetime-Objekte umzuwandeln.

In [1]: from datetime import datetime
In [2]: import time
In [3]: ts = time.gmtime()
In [4]: ts
Out[4]: (2009, 2, 22, 19, 55, 33, 6, 53, 0)
In [5]: datetime(*ts[0:6])
Out[5]: datetime.datetime(2009, 2, 22, 19, 55, 33)

Die Funktion time.gmtime gibt ein time.struct_time zurück. Da für datetime-Objekte nur Jahr, Monat, Tag sowie Stunden, Minuten und Sekunden notwendig sind, übergebe ich nur die ersten sechs Werte von ts.

Um mir die Angabe der Werte zu erleichtern, setze ich den notwendigen Teil von time.struct_time als Argumentenliste (*), statt jedes Argument einzeln (datetime(ts[0], ts[1],...) zu übergeben.

Tags: datetime, django, python, time

 

Kommentare

Keine Kommentare vorhanden.

 

Kommentar schreiben