Wie erhalte ich in Python ein Zeichenfolgenformat der aktuellen Datums- und Uhrzeitangabe?

113

Zum Beispiel möchte ich am 5. Juli 2010 die Zeichenfolge berechnen

 July 5, 2010

Wie soll das gemacht werden?

TIMEX
quelle

Antworten:

227

Sie können das datetimeModul zum Arbeiten mit Datum und Uhrzeit in Python verwenden. Mit dieser strftimeMethode können Sie eine Zeichenfolgendarstellung von Datum und Uhrzeit in einem von Ihnen angegebenen Format erstellen.

>>> import datetime
>>> datetime.date.today().strftime("%B %d, %Y")
'July 23, 2010'
>>> datetime.datetime.now().strftime("%I:%M%p on %B %d, %Y")
'10:36AM on July 23, 2010'
Dave Webb
quelle
34
#python3

import datetime
print(
    '1: test-{date:%Y-%m-%d_%H:%M:%S}.txt'.format( date=datetime.datetime.now() )
    )

d = datetime.datetime.now()
print( "2a: {:%B %d, %Y}".format(d))

# see the f" to tell python this is a f string, no .format
print(f"2b: {d:%B %d, %Y}")

print(f"3: Today is {datetime.datetime.now():%Y-%m-%d} yay")

1: test-2018-02-14_16: 40: 52.txt

2a: 04. März 2018

2b: 04. März 2018

3: Heute ist 2018-11-11 yay


Beschreibung:

Bei Verwendung des neuen Zeichenfolgenformats zum Einfügen eines Werts in eine Zeichenfolge am Platzhalter {} ist der Wert die aktuelle Zeit.

Verwenden Sie dann die Formatierung, um das richtige Datumsformat zu erhalten, anstatt nur den Rohwert als {} anzuzeigen.

https://docs.python.org/3/library/string.html#formatexamples

Pieter
quelle
Ihre Antwort wurde als qualitativ minderwertig gekennzeichnet, da sie nur Code enthält. Versuchen Sie, Ihre Antwort ausführlicher zu erklären.
Derek Brown
1
Probs beste Antwort.
Nulltron
was fbedeutet in print(f"3?
Lei Yang
@ lei-yang hier ist eine Erklärung: realpython.com/python-f-strings markiert die Zeichenfolge als f-Zeichenfolge, und Python sucht dann nach {} mit Code / Variablen darin und platziert den Inhalt in der Zeichenfolge. Es ist die neueste Ergänzung zur Python3.6-Zeichenfolgenformatierung
Pieter
Am Ende dieser Seite https://docs.python.org/3/library/datetime.html werden die Platzhalter wie %Bund was sie darstellen aufgelistet .
James Toomey
24
>>> import datetime
>>> now = datetime.datetime.now()
>>> now.strftime("%B %d, %Y")
'July 23, 2010'
Pär Wieslander
quelle
6

Wenn Sie sich nicht für die Formatierung interessieren und nur ein kurzes Datum benötigen, können Sie Folgendes verwenden:

import time
print(time.ctime())
Umfang
quelle