430 Stimmen

Python strftime - Datum ohne führende 0?

Bei Verwendung von Python strftime Gibt es eine Möglichkeit, die erste 0 des Datums zu entfernen, wenn es vor dem 10. liegt, d.h. 01 es 1 ? Kann nicht finden ein % Dingsbums dafür?

Gracias.

4voto

AliAxghar Punkte 21

Wenn wir nur das Datum ohne führende Null abrufen wollen, können wir

d = date.today()
day = int(d.strftime("%d"))

4voto

Para %d können Sie in eine Ganzzahl umwandeln mit int() dann wird die führende 0 automatisch entfernt und zu einer Ganzzahl. Sie können dann zurück zu String konvertieren mit str() .

4voto

Chris Chewa Punkte 31

Die Verwendung von z. B. "%-d" ist selbst zwischen verschiedenen Versionen desselben Betriebssystems nicht portabel. Eine bessere Lösung wäre, die Datumskomponenten einzeln zu extrahieren und für jede Komponente zwischen datumspezifischen Formatierungsoperatoren und dem Zugriff auf Datumsattribute zu wählen.

e = datetime.date(2014, 1, 6)
"{date:%A} {date.day} {date:%B}{date.year}".format(date=e)

3voto

ItM Punkte 193

Python 3.6+:

from datetime import date
today = date.today()
text = "Today it is " + today.strftime(f"%A %B {today.day}, %Y")

2voto

mmitchell Punkte 601

Basierend auf der Methode von Alex funktioniert dies sowohl für den Fall des Beginns der Zeichenkette als auch für den Fall von Leerzeichen nach der Zeichenkette:

re.sub('^0|(?<= )0', '', "01 January 2000 08:00am")

Das gefällt mir besser als .format oder %-d, weil es plattformübergreifend ist und mir erlaubt, weiterhin strftime zu verwenden (um Dinge wie "November" und "Montag" zu erhalten).

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