2015-03-27 20 views
5

In Python, possiamo convertire una data in una stringa da:Formato data senza trattino?

>>> import datetime 
>>> datetime.date(2002, 12,4).isoformat() 
'2002-12-04' 

Come possiamo formattare l'output di essere '20.021.204', vale a dire senza trattini?

ci sono due funzioni, ma non so come specificare il formato:

date.strftime(format)
Restituisce una stringa che rappresenta la data, controllato da un esplicito formato stringa. I codici di formato che si riferiscono a ore, minuti o secondi vedranno valori 0. Per un elenco completo delle direttive di formattazione , vedere la sezione strftime() e il comportamento strptime().

e

date.__format__(format)
Uguale date.strftime(). Ciò consente di specificare stringhe di formato per un oggetto data quando si utilizza str.format(). Vedere la sezione strftime() e il comportamento strptime().

risposta

10

Si utilizza lo strumento sbagliato per il lavoro, utilizzare strftime

>>> datetime.date(2002, 12,4).strftime("%Y%m%d") 
'20021204' 

Per i dettagli sull'uso strftime e strptime, fare riferimento

Per il vostro caso particolare, citerò il brano in questione

  • % Y Anno con il secolo come numero decimale mber. 1970, 1988, 2001, 2013
  • % m Mese come numero decimale con zero cifre. 01, 02, ..., 12
  • % d Giorno del mese come numero decimale con zero cifre. 01, 02, ..., 31

In alternativa, si potrebbe avere sempre rimosso o sostituito il trattino dal isoformat

>>> str(datetime.date(2002, 12,4)).translate(None,'-') 
'20021204' 
4

È possibile utilizzare '%m%d%Y come formato:

>>> d=datetime.date(2002, 12,4) 
>>> d.strftime('%m%d%Y') 
'12042002' 

Oppure nel tuo primo codice, puoi utilizzare str.replace:

>>> datetime.date(2002, 12,4).isoformat().replace('-','') 
'20021204'