簡體   English   中英

如何檢查日期是否與datetime.today()在同一天?

[英]How can I check if a date is the same day as datetime.today()?

該條件即使在同一天也總是計算為True因為它正在比較時間。

from datetime import datetime

# ...

if date_num_posts < datetime.today(): 

如何檢查日期是否與datetime.today()在同一天?

如果您只想比較日期,

yourdatetime.date() < datetime.today().date()

或者,顯然

yourdatetime.date() == datetime.today().date()

如果要檢查它們是同一日期。

該文檔通常很有幫助。 通常,它也是python thing_i_have_a_question_about的第一個Google搜索結果。 除非您的問題與名為“ snake”的功能/模塊有關。

基本上, datetime模塊具有三種用於存儲時間點的類型:

  • 年,月,日的date
  • time ,小時,分鍾,秒,微秒,時區信息
  • datetime結合了日期和時間。 它具有date()time()來獲取相應的datetime對象,並且還有一個方便的combine函數,用於將datetime組合成datetime
  • 如果只需要比較一個月中的某天的值,則可以使用以下代碼:

     if yourdate.day == datetime.today().day: # do something 
  • 如果您需要檢查兩個日期之間的差異是否可以接受,則可以使用timedelta

     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)

但是,當它們都是零時,真實性的答案可能是最好的,您可以比較時間的.date()

但是,如果您必須比較數百個日期時間,則可能會更快,因為您只需要執行一次replace()即可進行數百次對date()的調用

all(getattr(someTime,x)==getattr(today(),x) for x in ['year','month','day'])

應該使用.date()進行比較,但是如果有人想要按月或按分鍾等進行比較,我.date()該方法為例。

暫無
暫無

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

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