Jika Anda hanya ingin membandingkan tanggal,
yourdatetime.date() < datetime.today().date()
Atau, tentu saja,
yourdatetime.date() == datetime.today().date()
Jika Anda ingin memeriksa apakah mereka tanggal yang sama .
Dokumentasi biasanya membantu. Biasanya ini juga merupakan hasil google pertama untuk python thing_i_have_a_question_about
. Kecuali pertanyaan Anda adalah tentang fungsi / modul bernama "ular".
Pada dasarnya, datetime
modul memiliki tiga jenis untuk menyimpan suatu titik waktu:
date
untuk tahun, bulan, hari dalam sebulan
time
untuk jam, menit, detik, mikrodetik, info zona waktu
datetime
menggabungkan tanggal dan waktu. Ini memiliki metode date()
dan time()
untuk mendapatkan objek date
dan terkait time
, dan ada combine
fungsi praktis untuk menggabungkan date
dan time
menjadi datetime
.
Jika Anda hanya perlu membandingkan nilai hari dalam sebulan daripada Anda dapat menggunakan kode berikut:
if yourdate.day == datetime.today().day: # do something
Jika Anda perlu memeriksa bahwa perbedaan antara dua tanggal dapat diterima, maka Anda dapat menggunakan timedelta :
if (datetime.today() - yourdate).days == 0: #do something
Dan jika Anda ingin membandingkan bagian tanggal saja, Anda dapat menggunakan:
from datetime import datetime, date if yourdatetime.date() < datetime.today().date() # do something
Perhatikan bahwa timedelta memiliki format berikut:
Jadi, Anda dapat memeriksa perbedaan dalam hari, detik, mdet, menit, dan seterusnya, tergantung pada apa yang Anda perlukan:
from datetime import datetime if (datetime.today() - yourdate).days == 0: #do something
Dalam kasus Anda, ketika Anda perlu memeriksa bahwa dua tanggal persis sama, Anda dapat menggunakan timedelta (0):
from datetime import datetime, timedelta if (datetime.today() - yourdate) == timedelta(0): #do something
sumber
.day
adalah hari dalam sebulan. Jadi, 12 Agustus "sama" dengan 12 Desember menggunakan cuplikan kode pertama Anda. Mungkin itu bukan perilaku yang diinginkan OP.Anda dapat mengatur jam, menit, detik dan mikrodetik sesuai keinginan Anda
datetime.datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
tetapi jawaban kebenaran mungkin paling baik ketika semuanya menjadi nol dan Anda bisa membandingkannya
.date()
dengan waktuMungkin lebih cepat jika Anda harus membandingkan ratusan datetime karena Anda hanya perlu melakukan
replace()
panggilan sekali vs ratusan kedate()
sumber
all(getattr(someTime,x)==getattr(today(),x) for x in ['year','month','day'])
Seseorang harus membandingkan penggunaan
.date()
, tetapi saya meninggalkan metode ini sebagai contoh jika seseorang ingin, misalnya, membandingkan berbagai hal berdasarkan bulan atau menit, dll.sumber