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

  

Python strftime - Datum ohne führende 0

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top