Bagaimana cara mengonversi datetime.datetimeobjek (misalnya, nilai pengembalian datetime.datetime.now())ke datetime.dateobjek dengan Python?
from datetime import datetimeAnda bisa menambahkan tanggalfrom datetime import datetime, date
Bagaimana cara mengonversi datetime.datetimeobjek (misalnya, nilai pengembalian datetime.datetime.now())ke datetime.dateobjek dengan Python?
from datetime import datetimeAnda bisa menambahkan tanggalfrom datetime import datetime, date
Jawaban:
Gunakan date()metode:
datetime.datetime.now().date()
datetime.datetime.utcnow()dan jugadatetime.datetime.utcnow().date()
datetime.datetime.now(pytz.timezone('US/Pacific')).date()
Dari dokumentasi:
Objek tanggal pengembalian dengan tahun, bulan, dan hari yang sama.
Anda menggunakan datetime.datetime.date()metode ini:
datetime.datetime.now().date()
Jelas, ungkapan di atas dapat (dan harus IMHO :) ditulis sebagai:
datetime.date.today()
.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')dan if losdat < datetime.datetime.today():itu akan selalu benar karena losdatakan memiliki komponen waktu tengah malam yang akan jatuh sebelum timestamptoday()
datetime.datetime.today()alih-alih datetime.date.today(), ketika orang menginginkan datetime.dateobjek?
Anda bisa mengonversi objek datetime ke tanggal dengan metode date () dari objek waktu tanggal, sebagai berikut:
<datetime_object>.date()
import time
import datetime
# use mktime to step by one day
# end - the last day, numdays - count of days to step back
def 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 day
return xrange(start, end, 86400)
# if you need reverse the list of dates
for dt in reversed(gen_dates_list(datetime.datetime.today(), 100)):
print datetime.datetime.fromtimestamp(dt).date()
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.dateobjek, dan bukan string, yang strftimeakan kembali (ref: docs.python.org/3/library/datetime.html#datetime.date.strftime ).
datetime.datetime.now(), harap dicatat bahwa ada metodedatetime.date.today().