Hinzufügen von Sekunden zu datetime.time in Python
Entwickler stehen häufig vor der Notwendigkeit, Zeitwerte in Python zu manipulieren. Unter den verschiedenen datetime-Komponenten stellt datetime.time eine Tageszeit ohne Datumskomponente dar. Um einem datetime.time-Objekt eine ganzzahlige Anzahl von Sekunden hinzuzufügen, benötigen wir eine standardmäßige und effiziente Methode.
Konventionelle Ansätze
Versuch, eine Ganzzahl direkt zu a hinzuzufügen Der Wert datetime.time oder die Verwendung eines timedelta mit einem Zeitobjekt führt zu Typfehlern. Benutzerdefinierte Funktionen wie add_secs_to_time() wurden entwickelt, um dieses Problem zu beheben.
Effiziente Lösung
Es gibt jedoch eine elegantere und pythonische Lösung. Durch Konvertieren des datetime.time-Objekts in eine vollständige Datetime-Instanz mit einem Dummy-Datum können wir das Timedelta nutzen, um Sekunden hinzuzufügen. Zum Beispiel:
<code class="python">import datetime timeval = datetime.time(11, 34, 59) secs_to_add = 3 dt = datetime.datetime(100, 1, 1, timeval.hour, timeval.minute, timeval.second) # Dummy date dt += datetime.timedelta(seconds=secs_to_add) result_time = dt.time()</code>
Dieser Ansatz führt zum erwarteten Ergebnis: 11:35:02. Es behält die ursprünglichen Zeitinformationen bei und erhöht gleichzeitig die Sekunden genau.
Hilfsfunktion
Der Einfachheit halber können wir eine wiederverwendbare Funktion namens addSecs:
<code class="python">def addSecs(tm, secs): fulldate = datetime.datetime(100, 1, 1, tm.hour, tm.minute, tm.second) fulldate += datetime.timedelta(seconds=secs) return fulldate.time()</code>
Mit dieser Funktion können wir datetime.time-Werte ganz einfach manipulieren:
<code class="python">a = datetime.datetime.now().time() b = addSecs(a, 300)</code>
Das obige ist der detaillierte Inhalt vonWie füge ich Sekunden zu einem datetime.time-Objekt in Python hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!