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

Patricia Arquette
Freigeben: 2024-11-04 03:07:29
Original
668 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Ergebnisse in:

11:34:59
11:35:02
Nach dem Login kopieren

Alternativ können Sie Folgendes verwenden:

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

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!