Befreien Sie Nullen für Datumszeichenfolgen in Python von führenden? [Duplikat]
-
22-09-2019 - |
Frage
Diese Frage bereits eine Antwort hier:
- Python strftime - Datum ohne führende 0 ? 17 Antworten
Gibt es eine flinke Art und Weise der führenden Nullen für Datumszeichenfolgen in Python loswerden?
Im Beispiel unten Ich mag 2009.12.01 im Gegenzug erhalten statt 12.01.2009. Ich glaube, ich reguläre Ausdrücke verwenden könnte. Aber mir, dass scheint übertrieben. Gibt es eine bessere Lösung?
>>> time.strftime('%m/%d/%Y',time.strptime('12/1/2009', '%m/%d/%Y'))
'12/01/2009'
Siehe auch
Lösung
@OP, ist es nicht viel, um ein bisschen String-Manipulation zu tun.
>>> t=time.strftime('%m/%d/%Y',time.strptime('12/1/2009', '%m/%d/%Y'))
>>> '/'.join( map( str, map(int,t.split("/")) ) )
'12/1/2009'
Andere Tipps
Eine einfachere und lesbare Lösung ist, es selbst zu formatieren:
>>> d = datetime.datetime.now()
>>> "%d/%d/%d"%(d.month, d.day, d.year)
4/8/2012
würde ich einen sehr einfachen regulären Ausdruck vorschlagen. Es ist nicht so Performace-kritisch ist, ist es?
Suchen Sie nach \b0
und ersetzen mit nichts.
ich. e.
import re
newstring = re.sub(r"\b0","",time.strftime('%m/%d/%Y',time.strptime('12/1/2009', '%m/%d/%Y')))
>>> time.strftime('%-m/%-d/%Y',time.strptime('8/1/2009', '%m/%d/%Y'))
'8/1/2009'
Allerdings vermute ich, dies auf dem System der strftime()
Umsetzung abhängig ist und möglicherweise nicht vollständig auf alle Plattformen tragbar sein, wenn diese Fragen für Sie.