2015-09-01 26 views
1

我似乎無法得到這個工作 - 我敢肯定,我的語法爲strptime()正確,但它不工作。輸出預計爲31 Aug 2015轉換字符串到日期不起作用

str = '31 Aug 2015 at 23:59' 

try: 
    mydate = datetime.strptime(str, '%d %b %Y') 
    print mydate 
except ValueError: 
    mydate = None 
    print "error" 

我得到「錯誤」打印出來。我錯過了什麼?

str變量是從文件中讀取的,因此它可以包含任何數據。我只是在尋找具有有效日期(日月年)的條目。

+0

不要使用'str'作爲變量名它是一個內置的 –

+0

如果我使用mystring而不是str,它是否工作。 – Greg

+2

您正在拋出有關導致異常的信息。刪除try塊並查看錯誤。它說:'ValueError:未轉換的數據仍然是:23:59' – Andy

回答

3

你需要考慮到at 23:59部分太:

>>> from datetime import datetime 
>>> 
>>> s = '31 Aug 2015 at 23:59' 
>>> datetime.strptime(s, "%d %b %Y at %H:%M") 
datetime.datetime(2015, 8, 31, 23, 59) 

,或者,讓dateutil做的工作:

>>> from dateutil.parser import parse 
>>> 
>>> s = '31 Aug 2015 at 23:59' 
>>> parse(s) 
datetime.datetime(2015, 8, 31, 23, 59) 
+0

完美。非常感謝。我不知道你需要這樣做。 – Greg