if date_num_posts < datetime.datetime.today():
即使是同一天也是如此,因爲它比較時間。如何檢查日期是否與datetime.today()同一天?
如何檢查日期是否與datetime.today()一樣?
if date_num_posts < datetime.datetime.today():
即使是同一天也是如此,因爲它比較時間。如何檢查日期是否與datetime.today()同一天?
如何檢查日期是否與datetime.today()一樣?
如果你想只比較日期,
yourdatetime.date() < datetime.today().date()
或者說,很明顯,
yourdatetime.date() == datetime.today().date()
如果要檢查他們相同日期。
The documentation通常是有幫助的。它通常也是python thing_i_have_a_question_about
的第一個谷歌結果。除非你的問題是關於一個名爲「蛇」的函數/模塊。
基本上,datetime
模塊有三種類型的用於存儲時間點:
date
年,月,月的一天time
小時,分鐘,秒,毫秒,時區信息datetime
結合日期和時間。它有方法date()
和time()
以獲得對應的date
和time
對象,並且有一個方便的combine
函數可將date
和time
組合成一個datetime
。如果你需要比較月份中只有一天,而不是你可以使用下面的代碼:如果您需要檢查兩個日期之間的差異是可以接受的,那麼你可以使用
if yourdate.day == datetime.today().day:
# do something
if (datetime.today() - yourdate).days == 0:
#do something
如果你想比較日期部分只比你可以簡單地使用:
from datetime import datetime, date
if yourdatetime.date() < datetime.today().date()
# do something
注意timedelta的格式如下:
datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
所以,你可以在天,秒,毫秒,分鐘等取決於你真正需要檢查DIFF:
from datetime import datetime
if (datetime.today() - yourdate).days == 0:
#do something
在你的情況,當你需要檢查兩個日期是完全一樣的,你可以使用timedelta(0):
from datetime import datetime, timedelta
if (datetime.today() - yourdate) == timedelta(0):
#do something
您可以設置小時,分鐘,秒和毫秒,無論你喜歡
datetime.datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
但trutheality的答案很可能是最好的時候,他們都爲零,你可以直接比較.date()
S的時代
也許是快但如果你要比較數百日期時間的,因爲你只需要執行一次replace()
VS上百個電話給date()
如果它不涉及突變,我會爲此投票。然而,您可以通過創建您正在比較的日期時間對象的克隆來修改此方法,然後通過刪除帶有分日分辨率的字段來修改它們,然後比較這些副本。 – ninjagecko
@ninja,它不會變異。 replace()返回一個新的datetime對象,就像str.replace()一樣 –
all(getattr(someTime,x)==getattr(today(),x) for x in ['year','month','day'])
每個人都應該比較使用.date()
,但在我離開這個方法爲例,以防有人想,例如,按月或按分鐘比較的東西,等
'.day'是日常的-這個月。因此,8月12日與12月12日使用你的第一部分代碼「相等」。這可能不是OP想要的行爲。 – trutheality
@trutheality - 是的,我在編輯問題之前就開始寫我的答案,所以我無法理解他確切需要什麼,這就是爲什麼我爲此提供了幾個選項。 –
快速提示:datetime對象具有一個名爲' (''''),並且timedelta對象有一個名爲'days'(帶有's')的屬性,以防人們發現自己的語法不起作用。 –