簡體   English   中英

Python 檢查日期是否在 24 小時內

[英]Python check if date is within 24 hours

我一直在為此嘗試一些代碼,但我似乎無法完全理解它。

我有一個設定的日期, set_date這只是一些你期望的隨機日期,而那個只是我得到的數據。 現在我想要一些錯誤函數,如果datetime.now()set_date 24 小時內會引發錯誤。

我一直在嘗試使用timedelta(hours=24)編寫代碼

from datetime import datetime, timedelta

now = datetime.now()
if now < (set_date - timedelta(hours=24)):
    raise ValidationError('')

我不確定這樣做的正確方法是什么,這樣做的好方法是什么。 我如何確切地檢查當前時間是否在設定日期之前 24 小時?

像那樣?

if now-timedelta(hours=24) <= set_date <= now:
    ... #date less than 24 hours in the past

如果您想檢查日期是否在任一側的 24 小時內:

if now-timedelta(hours=24) <= set_date <= now+timedelta(hours=24):
    ... #date within 24 hours

檢查日期是否在 24 小時內。

取當前時間和過去時間之間的差異,並檢查是否為否。 天數為零。

past_date = datetime(2018, 6, 6, 5, 27, 28, 369051)

difference = datetime.utcnow() - past_date

if difference.days == 0:
    print "date is within 24 hours"

## Also you can check the difference between two dates in seconds
total_seconds = (difference.days * 24 * 60 * 60) + difference.seconds
# Edited. Also difference have in-built method which will return the elapsed seconds.
total_seconds = difference.total_seconds()

您可以檢查 total_seconds 是否小於所需時間

這樣做:

if now - timedelta(hours=24) <= set_date <= now + timedelta(hours=24):
    #Do something

這相當於:

if now - timedelta(hours=24) <= set_date <= now or now <= set_date <= now + timedelta(hours=24):
    #                           ---^--- in the past 24h  ---^--- in the future 24h
    #Do something

就這么簡單:

from datetime import datetime

#...some code...
if (datetime.now() - pastDate).days > 1:
    print('24 hours have passed')
else:
    print('Date is within 24 hours!')

你在這里做的是從當前日期datetime.now()減去舊日期pastDate ,這給你一個時間增量datetime.timedelta(...)對象。 此對象存儲自舊日期以來經過的天數、秒數和微秒數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM