Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh menambah saat pada objek datetime.time dalam Python?

Bagaimanakah saya boleh menambah saat pada objek datetime.time dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-11-04 03:07:29660semak imbas

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

Menambah Detik pada datetime.time dalam Python

Menambah nombor integer saat pada nilai datetime.time dalam Python tidak serta-merta mudah . Percubaan untuk menambah timedelta atau objek datetime.time yang lain mengakibatkan ralat.

Pendekatan Naif

Percubaan asas seperti:

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

semua gagal dengan ralat jenis.

Penukaran Manual

Satu penyelesaian melibatkan penukaran datetime.time kepada saat, menambah saat yang dikehendaki dan kemudian membina semula objek datetime.time:

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

Menggunakan datetime.datetime

Kaedah yang lebih mudah ialah menggunakan objek datetime.datetime penuh, menetapkannya kepada tarikh tiruan dan kemudian menggunakan masa () kaedah untuk mendapatkan hanya nilai masa. Contohnya:

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

Hasil dalam:

11:34:59
11:35:02

Sebagai alternatif, anda boleh menggunakan:

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

Fungsi Tersuai

Jika fungsi tersuai diingini, anda boleh menentukan satu yang menggunakan kaedah addSecs:

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

Kaedah ini menerima objek datetime.time dan integer yang mewakili bilangan saat untuk ditambah, mengembalikan masa diubah suai.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menambah saat pada objek datetime.time dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn