2010-07-13 4 views
5

Wird einer gegenüber dem anderen bevorzugt? Wenn ja, in allen Fällen oder nur wenigen?Was sind die Unterschiede zwischen struct_time und datetime?

Ich beabsichtige, irgendeine Form von Datumsklasse zu verwenden, um lange Listen von Datums- und Zeitdaten zu halten, z.B. '2009-01-01 10:12:00'.

+0

Wenn Sie ausführen "import datetime; datetime.datetime.today(); datetime.datetime.today(). Tempouple();" - Ersteres ist eine Datetime, letzteres ist eine struct_time. Ein Dir() um den Wert wird die API-Unterschiede offen legen - obwohl dies Ihre Frage nicht beantwortet. – Metalshark

+0

'datetime's sind leichter zu ändern als' struct_time'' die einen unveränderlichen Datentyp wie ein 'tuple' sind (weil das effektiv ist). – martineau

Antwort

5

struct_time ist die alte Art der Darstellung von Zeiten, modelliert nach der C-Standardbibliothek. datetime kam später, ist pythonischer, hat mehr Funktionen und hat in Kantenfällen ein besser vorhersehbares Verhalten als die struct_time-Funktionen. Ich würde datetime verwenden, außer in den seltenen Fällen, in denen ein gemessener Leistungsunterschied signifikant genug ist, um relevant zu sein, oder wo er den Code deutlich weniger lesbar macht.

2

datetime ist objektorientierter und bietet viele praktische Funktionen, z.B. Arithmetik mit timedelta -Objekten.