Agar adil, jawaban ini (menggunakan .today()) adalah yang paling pythonic untuk contoh pertanyaan yang dinyatakan.
Dannid
2
Jika Anda menggunakan hari ini, berhati-hatilah saat membandingkan tanggal. today()memiliki komponen jam juga. jadi jika Anda melakukannya: losdat = datetime.datetime.strptime(losdatstr, '%d%m%Y')dan if losdat < datetime.datetime.today():itu akan selalu benar karena losdatakan memiliki komponen waktu tengah malam yang akan jatuh sebelum timestamptoday()
Dennis Decoene
3
@ DennisDecene: mengapa menggunakan datetime.datetime.today()alih-alih datetime.date.today(), ketika orang menginginkan datetime.dateobjek?
tzot
@tzot Ya itu juga yang ingin saya tunjukkan tetapi tidak jelas.
Dennis Decoene
45
Anda bisa mengonversi objek datetime ke tanggal dengan metode date () dari objek waktu tanggal, sebagai berikut:
import time
import datetime
# use mktime to step by one day# end - the last day, numdays - count of days to step backdef gen_dates_list(end, numdays):
start = end - datetime.timedelta(days=numdays+1)
end = int(time.mktime(end.timetuple()))
start = int(time.mktime(start.timetuple()))# 86400 s = 1 dayreturn xrange(start, end,86400)# if you need reverse the list of datesfor dt in reversed(gen_dates_list(datetime.datetime.today(),100)):print datetime.datetime.fromtimestamp(dt).date()
Apakah Anda bermaksud memposting jawaban ini di sini? Sepertinya saya jawaban Anda diarahkan ke pertanyaan yang berbeda.
Semua Pekerja Sangat Penting
2
Anda dapat memasukkan formulir kode ini untuk (tanggal hari ini & Nama-nama Hari & jam) :
datetime.datetime.now().strftime('%y-%m-%d %a %H:%M:%S')
'19 -09-09 Senin 17:37:56 '
dan masukkan kode ini untuk ( hanya tanggal hari ini) :
datetime.date.today().strftime('%y-%m-%d')
'19 -09-10 '
untuk objek:datetime.datetime.now().date()datetime.datetime.today().date()datetime.datetime.utcnow().date()datetime.datetime.today().time()datetime.datetime.utcnow().date()datetime.datetime.utcnow().time()
datetime.datetime.now()
, harap dicatat bahwa ada metodedatetime.date.today()
.from datetime import datetime
Anda bisa menambahkan tanggalfrom datetime import datetime, date
Jawaban:
Gunakan
date()
metode:sumber
datetime.datetime.utcnow()
dan jugadatetime.datetime.utcnow().date()
datetime.datetime.now(pytz.timezone('US/Pacific')).date()
Dari dokumentasi:
sumber
Anda menggunakan
datetime.datetime.date()
metode ini:Jelas, ungkapan di atas dapat (dan harus IMHO :) ditulis sebagai:
sumber
.today()
) adalah yang paling pythonic untuk contoh pertanyaan yang dinyatakan.today()
memiliki komponen jam juga. jadi jika Anda melakukannya:losdat = datetime.datetime.strptime(losdatstr, '%d%m%Y')
danif losdat < datetime.datetime.today():
itu akan selalu benar karenalosdat
akan memiliki komponen waktu tengah malam yang akan jatuh sebelum timestamptoday()
datetime.datetime.today()
alih-alihdatetime.date.today()
, ketika orang menginginkandatetime.date
objek?Anda bisa mengonversi objek datetime ke tanggal dengan metode date () dari objek waktu tanggal, sebagai berikut:
sumber
sumber
Anda dapat memasukkan formulir kode ini untuk (tanggal hari ini & Nama-nama Hari & jam) :
datetime.datetime.now().strftime('%y-%m-%d %a %H:%M:%S')
'19 -09-09 Senin 17:37:56 '
dan masukkan kode ini untuk ( hanya tanggal hari ini) :
datetime.date.today().strftime('%y-%m-%d')
'19 -09-10 'untuk objek:
datetime.datetime.now().date()
datetime.datetime.today().date()
datetime.datetime.utcnow().date()
datetime.datetime.today().time()
datetime.datetime.utcnow().date()
datetime.datetime.utcnow().time()
sumber
datetime.date
objek, dan bukan string, yangstrftime
akan kembali (ref: docs.python.org/3/library/datetime.html#datetime.date.strftime ).