15 Stimmen

Wie kann ich ein datetime.date-Objekt in ein time.struct_time-Objekt umwandeln?

Ich habe ein Python-Skript, das ich brauche, um zwei Daten zu vergleichen. Ich habe eine Liste Daten als time.struct_time-Objekte, die ich brauche, um ein paar datetime.date-Objekte zu vergleichen.

Wie konvertiere ich die datetime.date-Objekte in ein time.struct_time-Objekt? Oder kann ich sie einfach so verwenden, wie sie sind, um sie zu vergleichen?

21voto

Lucas Jones Punkte 19251

Versuchen Sie es mit date.timetuple() . Aus den Python-Dokumenten:

Rückgabe a time.struct_time s zurückgegeben von time.localtime() . Die Stunden, Minuten und Sekunden sind 0, und das Sommerzeit-Flag ist -1. d.timetuple() ist e time.struct_time((d.year, d.month, d.day, 0, 0, 0, d.weekday(), yday, -1)) donde yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1 ist die Tagesnummer innerhalb des laufenden Jahres beginnend mit 1 für den 1. Januar.

1voto

Sharan Punkte 55

Beispiel für die Umwandlung von Datumsobjekten in time.struct_time-Objekte:

#### Import the necessary modules
>>> dt = date(2008, 11, 10)
>>> time_tuple = dt.timetuple()
>>> print repr(time_tuple)
'time.struct_time(tm_year=2008, tm_mon=11, tm_mday=10, tm_hour=0, tm_min=0, tm_sec=0,     
 tm_wday=0, tm_yday=315, tm_isdst=-1)'

Unter diesem Link finden Sie weitere Beispiele: http://www.saltycrane.com/blog/2008/11/python-datetime-time-conversions/

0voto

Michael Aaron Safyan Punkte 90663

Bitte beachten Sie die Dokumentation für das Zeit Python-Modul , was bedeutet, dass Sie kalender.zeitgm o time.mktime zur Umwandlung der time.struct_time Objekts in Sekunden seit der Epoche (welche Funktion Sie verwenden, hängt davon ab, ob Ihr struct_time in einer Zeitzone oder in UTC-Zeit vorliegt). Sie können dann die Funktion datetime.datetime.time auf dem anderen Objekt, und vergleichen Sie in Sekunden seit der Epoche.

0voto

Dinesh Punkte 11

Verwenden Sie strftime von "datetime". Es hat verschiedene Attribute und die entsprechenden Daten können mit Direktiven abgerufen werden. Siehe dieser Spickzettel für eine vollständige Liste der Direktiven, die mit dem strftime method . Beachten Sie, dass die Direktiven an strftime als Zeichenkette in einfachen Anführungszeichen.

Beispiel:

import datetime as dt
today = dt.datetime.today()
print(today.strftime('%H')) #prints hour 0-23
print(today.strftime('%m')) #prints month number 1-12
print(today.strftime('%M')) #prints minute 0-59

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X