2012-12-24 52 views
1

我可以用Python日期時間相當新的,而我使用Python 2.7.3約datetime.strptime()

在Python控制檯:

>>>import datetime 
>>>datetime.datetime.strptime("2012-3-12 10:10:10", "%Y-%m-%j %H:%M:%S") 

爲什麼結果如下?

datetime.datetime(2012, 1, 12, 10, 10, 10) 

不是

datetime.datetime(2012, 3, 12, 10, 10, 10) 

回答

3

因爲你使用%j這是「一年中的一天」,因而它攪亂了你的日期時間。這有點像試圖在同一時間把你的車的方向盤爲兩個方向 - 不能工作...

你想%d代替:

>>> datetime.datetime.strptime("2012-03-12 10:10:10", "%Y-%m-%d %H:%M:%S") 
datetime.datetime(2012, 3, 12, 10, 10, 10) 
+0

感謝。我應該更仔細地閱讀Python的文檔 – Daniel

1

它在你的格式%j,來自documentation

一年中的一天是十進制數[001,366]。

而今年的第12天是1月12日。

使用%d代替:

>>> datetime.datetime.strptime("2012-03-12 10:10:10", "%Y-%m-%d %H:%M:%S") 
datetime.datetime(2012, 3, 12, 10, 10, 10) 
相關問題