Если вам действительно нужно текущее время, просто вызовите formatdate
без аргументов:
>>> from email.utils import formatdate
>>> formatdate()
'Tue, 10 Aug 2010 20:40:23 -0000'
Но если вы должны передать ему аргумент, вам нужен вывод time.time
(количество секунд с 01.01.1970):
>>> import time
>>> formatdate(time.time())
'Tue, 10 Aug 2010 20:41:43 -0000'
FWIW, datetime.datetime.now()
возвращает объект datetime
, а это не то, что ожидает formatdate
.
Отредактировано для добавления: если у вас уже есть объект datetime, вы можете отформатировать его соответствующим образом для formatdate:
>>> import datetime
>>> dt = datetime.datetime.now()
>>> formatdate(float(dt.strftime('%s')))
'Tue, 10 Aug 2010 20:46:16 -0000'
Отредактировано: Алекс Мартелли отметил, что строка формата '%s' для strftime может быть непереносимой между платформами. Возможной альтернативой было бы, как он сам предложил,
>>> formatdate(time.mktime(dt.timetuple()))
'Tue, 10 Aug 2010 20:46:16 -0000'
person
rbp
schedule
10.08.2010