70

Python では、次のように文字列を変換するにはどうすればよいですか。

2010 年 12 月 16 日木曜日 12:14:05 +0000

タイムゾーンを維持しながら、ISO 8601形式に変換しますか?

元の日付は文字列であり、出力も文字列である必要があることに注意してくださいdatetime

ただし、サードパーティのライブラリを使用しても問題ありません。

4

2 に答える 2

103

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
于 2010-12-16T12:30:21.340 に答える
28

Python 組み込みの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 でこの回答を参照してください。

于 2016-04-22T05:34:33.967 に答える