Bagaimana cara mengonversi datetime.datetime
objek (misalnya, nilai pengembalian datetime.datetime.now())
ke datetime.date
objek dengan Python?
from datetime import datetime
Anda bisa menambahkan tanggalfrom datetime import datetime, date
Bagaimana cara mengonversi datetime.datetime
objek (misalnya, nilai pengembalian datetime.datetime.now())
ke datetime.date
objek dengan Python?
from datetime import datetime
Anda 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 losdat
akan memiliki komponen waktu tengah malam yang akan jatuh sebelum timestamptoday()
datetime.datetime.today()
alih-alih datetime.date.today()
, ketika orang menginginkan datetime.date
objek?
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.date
objek, dan bukan string, yang strftime
akan kembali (ref: docs.python.org/3/library/datetime.html#datetime.date.strftime ).
datetime.datetime.now()
, harap dicatat bahwa ada metodedatetime.date.today()
.