2013-07-11 97 views
4

這些日期時間格式是什麼?我需要將它們轉換爲相同的格式,以檢查它們是否相同。這些只是兩個來自單獨的數據源,所以我需要找到一種方法使它們成爲相同的格式。有任何想法嗎?Python中的日期時間格式

2013-07-12T07:00:00Z

2013-07-10T11:00:00.000Z

在此先感謝

+0

有可能是一個更優雅的解決方案,但如果它是一個字符串只是切出多餘的.000 –

+0

http://www.ietf.org/rfc/rfc3339.txt – monkut

+0

如果您發現任何答案有幫助它爲你工作,然後[請接受答案](http://stackoverflow.com/help/accepted-answer) – Sudipta

回答

7

這額外.000是微秒。

這將把一個格式的日期字符串轉換爲datetime對象。

import datetime 
d1 = datetime.datetime.strptime("2013-07-12T07:00:00Z","%Y-%m-%dT%H:%M:%SZ") 
d2 = datetime.datetime.strptime("2013-07-10T11:00:00.000Z","%Y-%m-%dT%H:%M:%S.%fZ") 

然後將其轉換成任何格式取決於您的要求,通過使用:

new_format = "%Y-%m-%d" 
d1.strftime(new_format) 
+0

謝謝,這真的很有用 - 它的作品。我該如何扭轉它?所以我可以將d1或d2轉換回原始的日期時間格式。在此先感謝 – user1579970

+0

@ user1579970'「2013-07-12T07:00:00Z」'是一個字符串,d1是一個日期時間對象。您可以使用'strftime()'將任何格式的日期時間對象轉換爲任何格式的字符串。所以在這種情況下,你會做'd1.strftime(「%Y-%m-%dT%H:%M:%SZ」)' – Sudipta

+0

@ user1579970請通過[接受答案](http:// stackoverflow.com/help/accepted-answer)如果它爲你工作。 – Sudipta

-1

也許使用.isoformat()

串ISO 8601格式,YYYY-MM-DDTHH:MM :SS [.mmmmmm] [+ HH:MM]

>>> import datetime 
>>> datetime.datetime.utcnow().isoformat() + "Z" 
'2013-07-11T22:26:51.564000Z' 
>>> 

Z指定「祖魯」時間或UTC。

http://www.ietf.org/rfc/rfc3339.txt