Pythonでは、このような文字列をどのように変換できますか:
2010年12月16日(木)12:14:05 +0000
タイムゾーンを維持しながら、ISO 8601形式に準拠していますか?
元の日付は文字列であり、出力もdatetime
などの文字列ではなく、文字列でなければなりません。
ただし、サードパーティのライブラリを使用しても問題ありません。
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
Python inbuilt datetime パッケージには、datetimeオブジェクトをisoformatに変換するメソッドが組み込まれています。以下に例を示します。
>>>from datetime import datetime
>>>date = datetime.strptime('Thu, 16 Dec 2010 12:14:05', '%a, %d %b %Y %H:%M:%S')
>>>date.isoformat()
出力は
'2010-12-16T12:14:05'
この回答は、主にUTCで働いており、タイムゾーンについて心配する必要のない人向けに作成しました。最後の6文字を削除して、その文字列を取得できます。
Python 2はタイムゾーンの内部ライブラリをあまりサポートしていません。詳細と解決策については、stackoverflowで this answer を参照できます。