2010-12-16 10 views
31

W Pythonie w jaki sposób mogę przekonwertować ciąg tak:Python - Konwersja daty ISO 8601

czw, 16 gru 2010 12:14:05 +0000

w formacie ISO 8601 , zachowując strefę czasową?

Należy pamiętać, że oryginalna data jest łańcuch, a wyjście powinno być ciąg też nie datetime lub coś podobnego.

Nie mam jednak problemu z korzystaniem z bibliotek stron trzecich.

+0

Co jest źródłem ciąg? – dheerosaur

Odpowiedz

58

Korzystanie dateutil:

import dateutil.parser as parser 
text = 'Thu, 16 Dec 2010 12:14:05 +0000' 
date = parser.parse(text) 
print(date.isoformat()) 
# 2010-12-16T12:14:05+00:00 
11

Python wbudowana datetime pakiet ma zbudować w sposób konwertować obiekt DateTime do isoformat. Oto przykład:

>>>from datetime import datetime 
>>>date = datetime.strptime('Thu, 16 Dec 2010 12:14:05', '%a, %d %b %Y %H:%M:%S') 
>>>date.isoformat() 

wyjście jest

'2010-12-16T12:14:05' 
+1

Gdzie znajduje się kwalifikator strefy czasowej (w tym przypadku Z)? – jtlz2