Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menentukan dengan Cekap jika 24 Jam Telah Berlalu Antara Dua Objek `datetime` Python?

Bagaimanakah Saya Boleh Menentukan dengan Cekap jika 24 Jam Telah Berlalu Antara Dua Objek `datetime` Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-06 17:20:141050semak imbas

How Can I Efficiently Determine if 24 Hours Have Passed Between Two Python `datetime` Objects?

Mengira Perbezaan Masa untuk Menentukan jika 24 Jam Telah Berlalu

Tugas melibatkan menentukan sama ada 24 jam telah berlalu antara dua tarikh atau masa yang disimpan dalam objek datetime. Berikut ialah penyelesaian dalam Python:

Menggunakan Objek Datetime Naif

Jika objek datetime mewakili masa naif (tanpa maklumat zon waktu):

from datetime import datetime, timedelta

if (datetime.utcnow() - last_updated) > timedelta(hours=24):
    # More than 24 hours passed since last_updated

Menggunakan Objek Masa Setempat

Jika terakhir_kemas kini mewakili waktu tempatan:

import time

DAY = 86400
now = time.time()
then = time.mktime(last_updated.timetuple())
if (now - then) > DAY:
    # More than 24 hours passed since last_updated

Menggunakan tzlocal Module (Disyorkan)

from datetime import datetime, timedelta
from tzlocal import get_localzone

tz = get_localzone()
then = tz.normalize(tz.localize(last_updated))
now = datetime.now(tz)
if (now - then) > timedelta(hours=24):
    # More than 24 hours passed since last_updated

Kaedah ini mengendalikan kes di mana zon waktu mungkin telah berubah atau Daylight Saving Time (DST) offset telah dilaraskan.

Nota:

  • Jika last_updated ialah objek datetime sedar (dengan maklumat zon waktu), tolak offset UTC sebelum membandingkan.
  • Bekerja dengan masa UTC meminimumkan isu zon waktu dan secara amnya disyorkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan dengan Cekap jika 24 Jam Telah Berlalu Antara Dua Objek `datetime` 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