826 Stimmen

Wie drucke ich ein Datum in einem normalen Format?

Dies ist mein Code:

import datetime
today = datetime.date.today()
print(today)

Dies wird gedruckt: 2008-11-22 Das ist genau das, was ich will.

Aber ich habe eine Liste, an die ich das anhänge, und dann geht plötzlich alles "schief". Hier ist der Code:

import datetime
mylist = []
today = datetime.date.today()
mylist.append(today)
print(mylist)

Es wird Folgendes ausgedruckt:

[datetime.date(2008, 11, 22)]

Wie kann ich nur ein einfaches Datum wie 2008-11-22 ?

17 Stimmen

Die kurze Antwort: Durch die Anwendung str() (zu jedem Element der Liste), denn das ist genau das, was print stillschweigend mit Ihrem Solo gemacht today Objekt.

1 Stimmen

6voto

ntg Punkte 10508

Para pandas.Zeitstempel s, strftime() kann z.B. verwendet werden:

utc_now = datetime.now()

Für Isoformat:

utc_now.isoformat()

Für jedes Format z.B.:

utc_now.strftime("%m/%d/%Y, %H:%M:%S")

6voto

Simon Johnson Punkte 7722

Sie müssen die datetime Objekt zu einem str .

Der folgende Code hat bei mir funktioniert:

import datetime

collection = []
dateTimeString = str(datetime.date.today())
collection.append(dateTimeString)

print(collection)

Lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen.

4 Stimmen

Na los! Ermutigen Sie einen Neuling nicht, einen String statt eines Datumsobjekts zu speichern. Er wird nicht in der Lage sein zu wissen, wann es eine gute oder schlechte Idee ist...

0 Stimmen

E-satis: Wenn Sie nur eine Zeichenkette brauchen, was ist dann das Problem? Wir speichern unsere Firmware-Build-Daten immer als Strings - manchmal ist es übertrieben, ein ganzes Objekt zu speichern, wenn man nur einen einfachen Zeitstempel braucht (YAGNI und so).

3 Stimmen

Ja, in bestimmten Fällen ist das der Fall. Ich meine nur, dass ein Anfänger nicht in der Lage sein wird, diese Fälle zu erkennen. Fangen wir also mit dem richtigen Fuß an :-)

6voto

Domenico Ruggiano Punkte 379

In Python können Sie eine Datetime mit dem Befehl strftime() Methode aus dem date , time y datetime Klassen im datetime Modul.

In Ihrem speziellen Fall verwenden Sie die date Klasse von datetime . Sie können das folgende Snippet verwenden, um die today  in eine Zeichenkette mit dem Format yyyy-MM-dd :

import datetime

today = datetime.date.today()
print("formatted datetime: %s" % today.strftime("%Y-%m-%d"))

Im Folgenden ein ausführlicheres Beispiel:

import datetime
today = datetime.date.today()

# datetime in d/m/Y H:M:S format
date_time = today.strftime("%d/%m/%Y, %H:%M:%S")
print("datetime: %s" % date_time)

# datetime in Y-m-d H:M:S format
date_time = today.strftime("%Y-%m-%d, %H:%M:%S")
print("datetime: %s" % date_time)

# format date
date = today.strftime("%d/%m/%Y")
print("date: %s" % time)

# format time
time = today.strftime("%H:%M:%S")
print("time: %s" % time)

# day
day = today.strftime("%d")
print("day: %s" % day)

# month
month = today.strftime("%m")
print("month: %s" % month)

# year
year = today.strftime("%Y")
print("year: %s" % year)

Weitere Direktiven:

Python strftime directives from 1989 C standards

Quellen:

4voto

Liran H Punkte 6913

Für diejenigen, die ortsbezogen Datum und ohne Zeitangabe, verwenden:

>>> some_date.strftime('%x')
07/11/2019

3voto

Ward Taya Punkte 63

In Anbetracht der Tatsache, dass Sie um etwas Einfaches gebeten haben, um das zu tun, was Sie wollten, könnten Sie einfach:

import datetime
str(datetime.date.today())

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