Wie konvertiere ich ein datetime.datetime
Objekt (z. B. den Rückgabewert von datetime.datetime.now())
in ein datetime.date
Objekt in Python?
from datetime import datetime
, können Sie einfach Datum hinzufügenfrom datetime import datetime, date
Wie konvertiere ich ein datetime.datetime
Objekt (z. B. den Rückgabewert von datetime.datetime.now())
in ein datetime.date
Objekt in Python?
from datetime import datetime
, können Sie einfach Datum hinzufügenfrom datetime import datetime, date
Antworten:
Verwenden Sie die date()
Methode:
datetime.datetime.now().date()
datetime.datetime.utcnow()
und entsprechenddatetime.datetime.utcnow().date()
datetime.datetime.now(pytz.timezone('US/Pacific')).date()
Aus der Dokumentation:
Rückgabe des Datumsobjekts mit demselben Jahr, Monat und Tag.
Sie verwenden die datetime.datetime.date()
Methode:
datetime.datetime.now().date()
Offensichtlich kann (und sollte IMHO :) der obige Ausdruck geschrieben werden als:
datetime.date.today()
.today()
Um fair zu sein, ist diese Antwort (mit ) die pythonischste für die angegebene Beispielfrage.
today()
hat auch eine Stundenkomponente . Also, wenn Sie dies tun: losdat = datetime.datetime.strptime(losdatstr, '%d%m%Y')
und dann wird if losdat < datetime.datetime.today():
es immer wahr sein, weil losdat
es eine today()
datetime.datetime.today()
statt verwenden datetime.date.today()
, wenn man ein datetime.date
Objekt will ?
Sie können ein datetime-Objekt mit der date () -Methode des date time-Objekts wie folgt in ein Datum konvertieren:
<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()
Sie können dieses Codeformular eingeben für (heute Datum & Namen des Tages & Stunde) :
datetime.datetime.now().strftime('%y-%m-%d %a %H:%M:%S')
'19 -09-09 Mo 17:37:56 '
und geben Sie diesen Code ein für ( heutiges Datum einfach) :
datetime.date.today().strftime('%y-%m-%d')
'19 -09-10 '
für Objekt:
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
Objekt und keine Zeichenfolge erhalten, die zurückgegeben werden strftime
würde ( siehe : docs.python.org/3/library/datetime.html#datetime.date.strftime ).
datetime.datetime.now()
, beachten Sie bitte, dass es eine Methode gibtdatetime.date.today()
.