Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah saya boleh menentukan dengan tepat jika 24 jam telah berlalu antara dua masa dalam Python?

Bagaimanakah saya boleh menentukan dengan tepat jika 24 jam telah berlalu antara dua masa dalam Python?

Susan Sarandon
Lepaskan: 2024-12-03 02:35:14
asal
450 orang telah melayarinya

How Can I Accurately Determine if 24 Hours Have Passed Between Two Datetimes in Python?

Menentukan Jika 24 Jam Telah Berlalu Antara Datetimes Menggunakan Python

Dalam Python, anda boleh dengan mudah menentukan perbezaan masa antara dua datetime menggunakan datetime modul. Ini amat berguna dalam senario di mana anda perlu menyemak sama ada tempoh tertentu, seperti 24 jam, telah berlalu.

Pertimbangkan kaedah berikut:

def time_diff(last_updated):
    day_period = last_updated.replace(day=last_updated.day + 1,
                                      hour=1,
                                      minute=0,
                                      second=0,
                                      microsecond=0)
    delta_time = day_period - last_updated
    hours = delta_time.seconds // 3600
    # Check if 24 hours have passed
    if hours >= 24:
        print("hello")
    else:
        print("do nothing")
Salin selepas log masuk

Kaedah ini mengira perbezaan masa antara masa semasa dan last_updated, objek datetime yang diberikan. Jika 24 jam telah berlalu, ia mencetak "hello"; jika tidak, ia mencetak "tidak berbuat apa-apa."

Walau bagaimanapun, kaedah ini gagal dalam menentukan perbezaan masa 24 jam dengan tepat. Berikut ialah penyelesaian yang lebih tepat:

Masa UTC

Jika last_updated ialah objek datetime naif (tanpa maklumat zon waktu) yang mewakili waktu UTC:

from datetime import datetime, timedelta

if (datetime.utcnow() - last_updated) > timedelta(hours=24):
    # More than 24 hours passed
Salin selepas log masuk

Masa Setempat

Jika last_updated adalah naif objek datetime (tanpa maklumat zon waktu) 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
Salin selepas log masuk

Zon Waktu dan Masa Kabur

Jika last_updated ialah masa samar-samar (mis., semasa peralihan DST) , anda boleh menggunakan modul pytz untuk memastikan ketepatan:

from datetime import datetime, timedelta
from tzlocal import get_localzone # pip install tzlocal

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

Atas ialah kandungan terperinci Bagaimanakah saya boleh menentukan dengan tepat jika 24 jam telah berlalu antara dua masa 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