Если вы действительно хотите узнать текущее время, просто позвоните 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'