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

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

Patricia Arquette
Lepaskan: 2024-11-04 03:07:29
asal
720 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Hasil dalam:

11:34:59
11:35:02
Salin selepas log masuk

Sebagai alternatif, anda boleh menggunakan:

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

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan