web-dev-qa-db-ja.com

YYYY-MM-DDTHH:mm:ss.000Z時間形式をPythonでMM / DD / YYYY時間形式に変換するにはどうすればよいですか?

たとえば、2008-09-26T01:51:42.000Zを09/26/2008に変換しようとしています。これを達成する最も簡単な方法は何ですか?

35
fuentesjr

最も簡単な方法は、 dateutil 。parser.parse()を使用して日付文字列をタイムゾーン対応の日時オブジェクトに解析し、次にstrftime()を使用して目的の形式を取得することです。

import dateutil.parser

d = dateutil.parser.parse('2008-09-26T01:51:42.000Z')
print(d.strftime('%m/%d/%Y'))  #==> '09/26/2008'
35
Jeremy Cantrell

私はこれが本当に古い質問であることを知っていますが、python datetime.strptime()でそれを行うことができます

>>> from datetime import datetime
>>> date_format = "%Y-%m-%dT%H:%M:%S.%fZ" 
>>> datetime.strptime('2008-09-26T01:51:42.000Z', date_format)
datetime.datetime(2008, 9, 26, 1, 51, 42)
22
mhoang
>>> import time
>>> timestamp = "2008-09-26T01:51:42.000Z"
>>> ts = time.strptime(timestamp[:19], "%Y-%m-%dT%H:%M:%S")
>>> time.strftime("%m/%d/%Y", ts)
'09/26/2008'

詳細については、Python time モジュールのドキュメントを参照してください。

16
Greg Hewgill

2008-09-26T01:51:42.000ZはISO8601の日付であり、形式は非常に多様です。これらの日付を解析したい場合は、python wiki on working with time )を参照してください。モジュールへの便利なリンクがいくつか含まれています。

3
olt