web-dev-qa-db-ja.com

Pythonを使用して、文字列を書式設定された日時文字列に変換する

文字列「20091229050936」を「2009年12月29日05:09(UTC)」に変換しようとしています。

>>>import time
>>>s = time.strptime("20091229050936", "%Y%m%d%H%M%S")
>>>print s.strftime('%H:%M %d %B %Y (UTC)')

AttributeError: 'time.struct_time' object has no attribute 'strftime'

明らかに、私は間違いを犯しました:時間は間違っています、それは日時オブジェクトです!日付がありますおよび時間コンポーネント!

>>>import datetime
>>>s = datetime.strptime("20091229050936", "%Y%m%d%H%M%S")

AttributeError: 'module' object has no attribute 'strptime'

文字列を書式設定された日付文字列に変換するにはどうすればよいですか?

22
Josh

_time.strptime_は_time_struct_を返します。 _time.strftime_は、オプションのパラメーターとして_time_struct_を受け入れます。

_>>>s = time.strptime(page.editTime(), "%Y%m%d%H%M%S")
>>>print time.strftime('%H:%M %d %B %Y (UTC)', s)
_

05:09 29 December 2009 (UTC)を与える

11
Josh

datetimeオブジェクトの場合、strptimedatetimeクラスの 静的メソッド であり、datetimeモジュールのフリー関数ではありません。

>>> import datetime
>>> s = datetime.datetime.strptime("20091229050936", "%Y%m%d%H%M%S")
>>> print s.strftime('%H:%M %d %B %Y (UTC)')
05:09 29 December 2009 (UTC)
41
sth

私にとってこれは最高で、Google App Engineでも動作します

UTC-4を示す例

import datetime   
UTC_OFFSET = 4
local_datetime = datetime.datetime.now()
print (local_datetime - datetime.timedelta(hours=UTC_OFFSET)).strftime("%Y-%m-%d %H:%M:%S")
1
coto

easy_date を使用して簡単にできます。

import date_converter
my_datetime = date_converter.string_to_string("20091229050936", "%Y%m%d%H%M%S", "%H:%M %d %B %Y (UTC)")
1
Raphael Amoedo
from datetime import datetime
s = datetime.strptime("20091229050936", "%Y%m%d%H%M%S")
print("{:%H:%M %d %B %Y (UTC)}".format(s))
1
Autodidact