1047 Stimmen

Wie konvertiere ich eine Zeitangabe in ein Datum?

Wie konvertiere ich eine datetime.datetime Objekt (z. B. der Rückgabewert von datetime.datetime.now()) a un datetime.date Objekt in Python?

42 Stimmen

Wenn Sie dies nur brauchen für datetime.datetime.now() Bitte beachten Sie, dass es eine Methode gibt datetime.date.today() .

1 Stimmen

Wenn Sie bereits datetime importiert haben, z. B. from datetime import datetime können Sie einfach ein Datum hinzufügen from datetime import datetime, date

1594voto

ars Punkte 112843

Verwenden Sie die date() Methode:

datetime.datetime.now().date()

24 Stimmen

Um in UTC zu gelangen, was sehr hilfreich sein kann --> datetime.datetime.utcnow() und dementsprechend datetime.datetime.utcnow().date()

3 Stimmen

Danke @SeanColombo, das aktuelle Datum in einer bestimmten Zeitzone sollte sein datetime.datetime.now(pytz.timezone('US/Pacific')).date()

4 Stimmen

Datetime.datetime.utcnow() ist veraltet siehe docs.python.org/3/Bibliothek/datetime.html#datetime.datetime durch datetime.now(timezone.utc) ersetzen. Die OP ist eigentlich nach Datum, so dass dies strittig ist.

173voto

Aus der Dokumentation:

datetime.datetime.date()

Rückgabe des Datumsobjekts mit gleichem Jahr, Monat und Tag.

79voto

tzot Punkte 86792

Sie verwenden die datetime.datetime.date() Methode:

datetime.datetime.now().date()

Offensichtlich kann (und sollte IMHO :) der obige Ausdruck wie folgt geschrieben werden:

datetime.date.today()

2 Stimmen

Um fair zu sein, diese Antwort (mit .today() ) ist die pythonischste für die genannte Beispielfrage.

2 Stimmen

Wenn Sie den heutigen Tag verwenden, seien Sie vorsichtig, wenn Sie ein Datum vergleichen. today() hat eine Stunde Wenn Sie das also tun: losdat = datetime.datetime.strptime(losdatstr, '%d%m%Y') und dann if losdat < datetime.datetime.today(): es wird immer wahr sein, weil losdat wird eine Zeitkomponente von Mitternacht haben, die vor dem Zeitstempel von today()

6 Stimmen

@DennisDecoene: warum verwenden datetime.datetime.today() anstelle von datetime.date.today() wenn man eine datetime.date Objekt?

66voto

Furbeenator Punkte 7798

Sie können ein datetime-Objekt mit der Methode date() des date time-Objekts wie folgt in ein Datum umwandeln:

<datetime_object>.date()

14voto

Tms91 Punkte 2444

Antwort aktualisiert auf Python 3.7 und mehr

So können Sie ein Datums- und Zeitobjekt drehen

(alias datetime.datetime Objekt, das innerhalb von models.DateTimeField django model feld )

in ein Datumsobjekt (auch bekannt als datetime.date Objekt):

from datetime import datetime

#your date-and-time object
# let's supposed it is defined as
datetime_element = datetime(2020, 7, 10, 12, 56, 54, 324893)

# where
# datetime_element = datetime(year, month, day, hour, minute, second, milliseconds)

# WHAT YOU WANT: your date-only object
date_element = datetime_element.date()

Und nur um das klarzustellen, wenn Sie diese Elemente ausdrucken, ist hier die Ausgabe:

print(datetime_element)

2020-07-10 12:56:54.324893

print(date_element)

2020-07-10

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X