2011-06-10 47 views
6

我嘗試從最新刪除秒:蟒蛇.rstrip刪除一個額外的字符

>>> 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' 

爲什麼在0「10」的末端被刪除?

回答

7

str.rstrip()不會刪除一個確切的字符串 - 它消除出現的字符串中的所有字符。既然你知道該字符串刪除的長度,你可以簡單地使用

str(test1)[:-9] 

甚至更​​好

test1.date().isoformat() 
+0

權。 >>> str(test1).rstrip('0:') '2011-06-10' >>> str(test1).rstrip('0:') '2011-06-1'' – zzzz 2011-06-10 21:09:39

7

rstrip需要一個被刪除的字符集(儘管參數可以是任何可迭代的,例如str),而不是單個字符串。

順便說一句,datetime.datetime的字符串表示形式不是固定的,你不能依賴它。相反,在datestrftime使用isoformat

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