Saya menggunakan ekspresi berikut untuk mendapatkan waktu 1:30 besok.

import datetime

t = datetime.date.today()
datetime.datetime.combine(t, datetime.time.min) + datetime.timedelta(hours=1, days=1, minutes=30)

Apakah ada cara yang lebih baik untuk melakukannya?

1
ca9163d9 27 November 2021, 10:03
Coba lihat lagi jawaban saya, barusan (setelah Anda Menerimanya) menambahkan bagian kedua dari jawaban, di mana melakukan beberapa koreksi jika itu adalah hari terakhir bulan itu.
 – 
Arty
27 November 2021, 11:00

1 menjawab

Jawaban Terbaik

Cara Anda menulis benar-benar baik-baik saja, cara lain untuk mencapai tugas yang sama adalah:

Cobalah secara online!

from datetime import datetime
now = datetime.now()
print(datetime(year = now.year, month = now.month,
    day = now.day + 1, hour = 1, minute = 30))

Keluaran:

2021-11-28 01:30:00

Baru tahu bahwa cara penulisan seperti di atas tidak akan berfungsi untuk hari terakhir dalam sebulan (day + 1 akan melebihi jumlah hari dalam sebulan), jadi lebih baik lakukan sebagai berikut:

Cobalah secara online!

import datetime
now = datetime.datetime.now()
print(datetime.datetime(year = now.year, month = now.month, day = now.day)
    + datetime.timedelta(days = 1, hours = 1, minutes = 30))

Keluaran:

2021-11-28 01:30:00
3
Arty 27 November 2021, 11:25
Perhatikan bahwa ini berfungsi untuk waktu musim panas dengan benar, tetapi saya tidak tahu apakah itu penting dalam situasi Anda. Jika semuanya UTC, itu akan benar, tetapi jika tidak, Anda harus mengoreksi zona waktu.
 – 
Sam Dolan
27 November 2021, 10:29