2011-06-10 9 views
6

intento quitar segundos a partir de la fecha:pitón .rstrip elimina un carácter adicional

>>> import datetime 
>>> test1 = datetime.datetime(2011, 6, 10, 0, 0) 
>>> test1 
datetime.datetime(2011, 6, 10, 0, 0) 
>>> str(test1) 
'2011-06-10 00:00:00' 
>>> str(test1).rstrip('00:00:00') 
'2011-06-10 ' 
>>> str(test1).rstrip(' 00:00:00') 
'2011-06-1' 

¿Por 0 al final del '10' se retira?

Respuesta

7

str.rstrip() no quita una cadena exacta - que elimina todos los caracteres que se producen en la cadena. Puesto que usted sabe la longitud de la cadena para eliminar, puede simplemente usar

str(test1)[:-9] 

o incluso mejor

test1.date().isoformat() 
+0

derecho. '>>> str (test1) .rstrip ('0:') '2011-06-10' >>> str (test1) .rstrip ('0:') '2011-06-1'' – zzzz

7

rstrip toma un conjunto (aunque el argumento puede ser iterable, como str en su ejemplo) de caracteres que se eliminan, ni una sola cadena.

Y, por cierto, la representación de cadena de datetime.datetime no es fija, no puede confiar en ella. En su lugar, utilice isoformat en el date o strftime:

>>> import datetime 
>>> test1 = datetime.datetime(2011, 6, 10, 0, 0) 
>>> test1.date().isoformat() 
'2011-06-10' 
>>> test1.strftime('%Y-%m-%d') 
'2011-06-10' 
Cuestiones relacionadas