Python задает время и время для определенного времени
Я хочу, чтобы дата была вчера в 11.30.
Вот мой код:
import datetime
yesterday = datetime.date.today () - datetime.timedelta (days=1)
PERIOD=yesterday.strftime ('%Y-%m-%d')
new_period=PERIOD.replace(hour=23, minute=30)
print new_period
однако я получаю эту ошибку:
TypeError: replace() takes no keyword arguments
любая помощь будет оценена.
Ответы
Ответ 1
Сначала измените datetime.date.today()
на datetime.datetime.today()
, чтобы вы могли манипулировать временем дня.
Затем вызовите replace
, прежде чем переводить время в строку.
Итак, вместо:
PERIOD=yesterday.strftime ('%Y-%m-%d')
new_period=PERIOD.replace(hour=23, minute=30)
Сделайте это:
new_period=yesterday.replace(hour=23, minute=30).strftime('%Y-%m-%d')
print new_period
Также имейте в виду, что строка, в которую вы ее конвертируете, не содержит информации о часах или минутах. Если вас это интересует, добавьте %H
для часа и %M
для минутной информации в строку формата.
Ответ 2
Это то, что вы хотите?
from datetime import datetime
yesterday = datetime(2014, 5, 12, 23, 30)
print yesterday
Edited
from datetime import datetime
import calendar
diff = 60 * 60 * 24
yesterday = datetime(*datetime.fromtimestamp(calendar.timegm(datetime.today().utctimetuple()) - diff).utctimetuple()[:3], hour=23, minute=30)
print yesterday