2016-11-12 159 views
1
from datetime import datetime 
now = datetime.now() 
sentence = "{:%B %d %Y}".format(now=datetime.now) 

如果由於某種原因,我必須使用import from關鍵字如何將這個格式化爲像上面這個例子那樣的三行?我確切的問題是我不知道如何在這種情況下使用格式參數。Python 2.7字符串格式

+1

'句子= datetime.now()的strftime( 「%B%d%Y」)'' – furas

+0

格式()'使用不同的參數,然後'strftime()' - 參見http://strftime.org/和https://pyformat.info/ – furas

+0

@furas,'str.format'內部使用對象的__format__'; ['datetime .__ format__'](https://docs.python.org/2/library/datetime.html#datetime.datetime.__format__),相當於['datetime.strformat'](https:// docs。 'datetime'對象的python.org/2/library/datetime.html#datetime.datetime.strftime)。 – falsetru

回答

1
  1. 你需要通過datetime.now(),不datetime.now方法本身。
  2. 在格式字符串中指定now以使用關鍵字參數。或者,如果您將datetime對象作爲位置參數傳遞,則可以省略now

>>> from datetime import datetime 
>>> now = datetime.now() 
>>> "{now:%B %d %Y}".format(now=datetime.now()) # keyword argument 
'November 12 2016' 

>>> "{:%B %d %Y}".format(datetime.now()) # positional argument 
'November 12 2016' 
>>> "{0:%B %d %Y}".format(datetime.now()) # positional argument + explicit 0 (first arg) 
'November 12 2016' 
1

如furas上面評論的,其工作原理:

>>> from datetime import datetime 
>>> sentence = datetime.now().strftime("%B %d %Y") 
>>> print sentence 
November 12 2016 
>>>