Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich einem datetime.time-Objekt in Python Sekunden hinzufügen?

Wie kann ich einem datetime.time-Objekt in Python Sekunden hinzufügen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-04 03:07:29660Durchsuche

How can I add seconds to a datetime.time object in Python?

Hinzufügen von Sekunden zu datetime.time in Python

Das Hinzufügen einer ganzzahligen Anzahl von Sekunden zu einem datetime.time-Wert in Python ist nicht sofort einfach . Versuche, ein Timedelta oder ein anderes datetime.time-Objekt hinzuzufügen, führen zu Fehlern.

Naive Ansätze

Grundlegende Versuche wie:

<code class="python">datetime.time(11, 34, 59) + 3
datetime.time(11, 34, 59) + datetime.timedelta(0, 3)
datetime.time(11, 34, 59) + datetime.time(0, 0, 3)</code>

alle schlägt mit Typfehlern fehl.

Manuelle Konvertierung

Eine Lösung besteht darin, datetime.time in Sekunden umzuwandeln, die gewünschten Sekunden hinzuzufügen und dann das datetime.time-Objekt zu rekonstruieren:

<code class="python">def add_secs_to_time(timeval, secs_to_add):
    secs = timeval.hour * 3600 + timeval.minute * 60 + timeval.second
    secs += secs_to_add
    return datetime.time(secs // 3600, (secs % 3600) // 60, secs % 60)</code>

Verwendung von datetime.datetime

Eine bequemere Methode besteht darin, ein vollständiges datetime.datetime-Objekt zu verwenden, es auf ein Dummy-Datum festzulegen und dann die Uhrzeit zu verwenden ()-Methode, um nur den Zeitwert abzurufen. Zum Beispiel:

<code class="python">a = datetime.datetime(100, 1, 1, 11, 34, 59)
b = a + datetime.timedelta(0, 3)
print(a.time())
print(b.time())</code>

Ergebnisse in:

11:34:59
11:35:02

Alternativ können Sie Folgendes verwenden:

<code class="python">b = a + datetime.timedelta(seconds=3)</code>

Benutzerdefinierte Funktion

Wenn eine benutzerdefinierte Funktion gewünscht wird, können Sie eine definieren, die die addSecs-Methode verwendet:

<code class="python">import datetime

def addSecs(tm, secs):
    fulldate = datetime.datetime(100, 1, 1, tm.hour, tm.minute, tm.second)
    fulldate = fulldate + datetime.timedelta(seconds=secs)
    return fulldate.time()</code>

Diese Methode akzeptiert ein datetime.time-Objekt und eine Ganzzahl, die die Anzahl der hinzuzufügenden Sekunden darstellt, und gibt die zurück geänderte Zeit.

Das obige ist der detaillierte Inhalt vonWie kann ich einem datetime.time-Objekt in Python Sekunden hinzufügen?. 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