t = e['updated_parsed']
dt = datetime.datetime(t[0],t[1],t[2],t[3],t[4],t[5],t[6]
print dt
>>>2010-01-28 08:39:49.000003
どうやってそれを文字列に変えるのですか?
"January 28, 2010"
Datetimeクラスにはメソッドstrftimeがあります。 Pythonのドキュメントには、受け入れ可能なさまざまな形式が記載されています。
この特定の例では、次のようになります。
my_datetime.strftime("%B %d, %Y")
Pythonの一般的な書式設定関数を使って同じことを行う方法は次のとおりです。
>>>from datetime import datetime
>>>"{:%B %d, %Y}".format(datetime.now())
ここで使用されているフォーマット文字は、 strftime で使用されているものと同じです。フォーマット指定子の先頭の:
を見逃さないでください。
ほとんどの場合、strftime()の代わりにformat()を使用すると、コードが読みやすくなり、書きやすくなり、フォーマットされた出力が生成される方法と一致するようになります。
>>>"{} today's date is: {:%B %d, %Y}".format("Andre", datetime.now())
上記と次のstrftime()の選択肢を比較してください。
>>>"{} today's date is {}".format("Andre", datetime.now().strftime("%B %d, %Y"))
また、次は動作しません...
>>>datetime.now().strftime("%s %B %d, %Y" % "Andre")
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
datetime.now().strftime("%s %B %d, %Y" % "Andre")
TypeError: not enough arguments for format string
等々...
from datetime import datetime
date_string = f'{datetime.now():%Y-%m-%d %H:%M:%S%z}'
非常に古い質問、私は知っています。しかし、新しい f-strings (python 3.6以降)では、新しいオプションがあります。完全を期すためにここに
from datetime import datetime
dt = datetime.now()
# str.format
strg = '{:%B %d, %Y}'.format(dt)
print(strg) # July 22, 2017
# datetime.strftime
strg = dt.strftime('%B %d, %Y')
print(strg) # July 22, 2017
# f-strings in python >= 3.6
strg = f'{dt:%B %d, %Y}'
print(strg) # July 22, 2017
strftime()
とstrptime()
の動作 フォーマット指定子が何を意味するのかを説明します。
公式文書から strfrtime を読んでください。
Pythonのdatetimeオブジェクトはmethod属性を持ち、それは読みやすいフォーマットで出力されます。
>>> a = datetime.now()
>>> a.ctime()
'Mon May 21 18:35:18 2018'
>>>