Я ищу более чистый способ сделать это.То, как я сейчас это делаю, - боль.
Я использую дату и время, чтобы помочь мне автоматически определять время для моих запросов.У меня разные потребности, но моя главная задача - всегда указывать дату и время вчерашнего дня в 6 вечера или, если> 6 вечера, то дать мне текущее 6 вечера.
Просто для ясности, именно так должна выглядеть дата и время.Также База данных находится в GMT.Вот откуда пришла таймделта.Я заполняю свои даты с помощью .format ()
ГДЕ время> = '2018-11-26T00: 00: 00Z
Причина' 0 '+ str (day.hour /минута / секунда / месяц / день), потому что datetime.hour, если его меньше 10, не содержит 0 перед ним.Поэтому он должен быть добавлен для того, чтобы запрос работал
Вот мой код:
now = datetime.datetime.now()
#time_6pm_yest is my start time
time_6pm_yest = now.replace(hour = 18, minute = 0, second = 0, microsecond = 0) - timedelta(days = 1) + timedelta(hours = 5)
#Timedelta+5 for GMT
end = now.replace(second = 0, microsecond = 0)
if now.hour > 18:
time_6pm_yest = time_6pm_yest + timedelta(1)
else:
pass
end = now.replace(second = 0, microsecond = 0)
if time_6pm_yest.hour < 10:
start_hour = '0' + str(time_6pm_yest.hour)
else:
start_hour = time_6pm_yest.hour
if time_6pm_yest.minute < 10:
start_minute = '0' + str(time_6pm_yest.minute)
else:
start_minute = time_6pm_yest.minute
if time_6pm_yest.second < 10:
start_second = '0' +str(time_6pm_yest.second)
else:
start_second = time_6pm_yest.second
if time_6pm_yest.day < 10:
start_day = '0' + str(time_6pm_yest.day)
else:
start_day = time_6pm_yest.day
if time_6pm_yest.month < 10:
start_month = '0' + str(time_6pm_yest.month)
else:
start_month = time_6pm_yest.month
if end.hour < 10:
end_hour = '0' +str(end.hour)
else:
end_hour = end.hour
if end.minute < 10:
end_minute = '0' + str(end.minute)
else:
end_minute = end.minute
if end.second < 10:
end_second = '0' +str(end.second)
else:
end_second = end.second
if end.day < 10:
end_day = '0' + str(end.day)
else:
end_day = end.day
if end.month < 10:
end_month = '0' + str(end.month)
else:
end_month = end.month