Datetime для Influx DB, требуется сжатие кода - PullRequest
0 голосов
/ 28 ноября 2018

Я ищу более чистый способ сделать это.То, как я сейчас это делаю, - боль.

Я использую дату и время, чтобы помочь мне автоматически определять время для моих запросов.У меня разные потребности, но моя главная задача - всегда указывать дату и время вчерашнего дня в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...