Ich sehe viel beim Konvertieren einer Datumszeichenfolge in ein datetime
Objekt in Python, aber ich möchte den anderen Weg gehen.
ich habe
datetime.datetime(2012, 2, 23, 0, 0)
und ich würde es gerne in string like konvertieren '2/23/2012'
.
Sie können strftime verwenden , um Ihr Datum zu formatieren.
Z.B,
import datetime
t = datetime.datetime(2012, 2, 23, 0, 0)
t.strftime('%m/%d/%Y')
wird ergeben:
'02/23/2012'
Weitere Informationen zur Formatierung finden Sie hier
DateTimeField
oderDateField
in Django. Danket = datetime.datetime.now()
, um das aktuelle Datum zu verwendendate
unddatetime
Objekte (undtime
auch) unterstützt eine Mini-Sprachausgabe zu spezifizieren , und es gibt zwei Möglichkeiten , um den Zugriff darauf:dt.strftime('format here')
; und'{:format here}'.format(dt)
Ihr Beispiel könnte also so aussehen:
oder
Der Vollständigkeit halber: Sie können auch direkt auf die Attribute des Objekts zugreifen, aber dann erhalten Sie nur die Zahlen:
Die Zeit zum Erlernen der Minisprache lohnt sich.
Als Referenz sind hier die Codes, die in der Minisprache verwendet werden:
%a
Wochentag als abgekürzter Name des Gebietsschemas.%A
Wochentag als vollständiger Name des Gebietsschemas.%w
Wochentag als Dezimalzahl, wobei 0 Sonntag und 6 Samstag ist.%d
Tag des Monats als null aufgefüllte Dezimalzahl.%b
Monat als abgekürzter Name des Gebietsschemas.%B
Monat als vollständiger Name des Gebietsschemas.%m
Monat als mit Nullen aufgefüllte Dezimalzahl. 01, ..., 12%y
Jahr ohne Jahrhundert als null aufgefüllte Dezimalzahl. 00, ..., 99%Y
Jahr mit Jahrhundert als Dezimalzahl. 1970, 1988, 2001, 2013%H
Stunde (24-Stunden-Uhr) als mit Nullen aufgefüllte Dezimalzahl. 00, ..., 23%I
Stunde (12-Stunden-Uhr) als mit Nullen aufgefüllte Dezimalzahl. 01, ..., 12%p
Das Gebietsschema entspricht entweder AM oder PM.%M
Minute als mit Nullen aufgefüllte Dezimalzahl. 00, ..., 59%S
Zweitens als mit Nullen aufgefüllte Dezimalzahl. 00, ..., 59%f
Mikrosekunde als Dezimalzahl, links mit Nullen aufgefüllt. 000000, ..., 999999%z
UTC-Offset in der Form + HHMM oder -HHMM (leer, wenn naiv), +0000, -0400, +1030%Z
Zeitzonenname (leer, wenn naiv), UTC, EST, CST%j
Tag des Jahres als null aufgefüllte Dezimalzahl. 001, ..., 366%U
Wochennummer des Jahres (Sonntag ist der erste) als mit Nullen aufgefüllte Dezimalzahl.%W
Wochennummer des Jahres (Montag ist der erste) als Dezimalzahl.%c
Die entsprechende Datums- und Uhrzeitdarstellung des Gebietsschemas.%x
Die entsprechende Datumsdarstellung des Gebietsschemas.%X
Die entsprechende Zeitdarstellung des Gebietsschemas.%%
Ein wörtliches '%' Zeichen.quelle
Andere Option:
quelle
datetime.datetime.now().ctime()
==>'Wed Sep 4 13:12:39 2019'
Sie können einfache Formatierungsmethoden für Zeichenfolgen verwenden:
quelle
'{:%Y-%m-%d %H:%M}'.format(datetime(2001, 2, 3, 4, 5))
. Weitere Informationen findentype-specific formatting
kann auch verwendet werden:Ausgabe:
quelle
Wenn Sie nach einer einfachen Möglichkeit
datetime
zur Zeichenfolgenkonvertierung suchen und das Format weglassen können. Sie könnendatetime
Objekte instr
Array-Slicing konvertieren und dann verwenden.Beachten Sie jedoch Folgendes. Wenn andere Lösungen ansteigen und
AttributeError
die VariableNone
in diesem Fall ist, erhalten Sie eine'None'
Zeichenfolge.quelle
Sie können ein datetime-Objekt in eine Zeichenfolge konvertieren, indem Sie direkt mit den Komponenten des datetime-Objekts arbeiten.
Ausgabe -> 23.05.2017
quelle
Sie können datetime in string konvertieren.
quelle
Die Verkettung von
str.join
Zeichenfolgen kann zum Erstellen der Zeichenfolge verwendet werden.quelle
Wenn Sie auch die Zeit wollen, gehen Sie einfach mit
Druckt
2019-07-11 19:36:31.118766
in der Konsole für michquelle