Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich Sekunden zu einem datetime.time-Objekt in Python hinzu?

Wie füge ich Sekunden zu einem datetime.time-Objekt in Python hinzu?

Linda Hamilton
Linda HamiltonOriginal
2024-10-31 10:26:17212Durchsuche

How to Add Seconds to a datetime.time Object in Python?

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>
erstellen

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn