TL; DR;Строка Python для часового пояса Django (знающая дата и время)
Как сменить 2016-01-01
на django timezone
??
Полная версия
Я получаю параметр строки запроса из формы, и я хочу получить эту строку и использовать его в качестве даты и времени фильтра в Django. Проблема заключается в том, что когда я конвертирую строку в дату и время, это не значит, что я знаю дату и время, и я теряю несколько часов из-за разного времени. Может быть, я теряю себя в форматировании, но я не могу этого сделать.
У меня есть pytz, у меня есть USE_TZ = True
в моих настройках.
пример:
from datetime import date
# Example from what I receive as GET querystring parameter
start_date, end_date = '15-01-2016', '16-01-2016'
DATE_FORMAT = '%Y-%m-%d'
start_date = start_date.split('-')
start_date = date(int(start_date[2]), int(start_date[1]), int(start_date[0]))
sd_filter = start_date.strftime(DATE_FORMAT)
end_date = end_date.split('-')
end_date = date(int(end_date[2]), int(end_date[1]), int(end_date[0]))
ed_filter = end_date.strftime(DATE_FORMAT)
#query
my_list = MyModel.objects.filter(created_at__range=(sd_filter, ed_filter))
проблема заключается в фильтре .. Я теряю несколько часов из-за временную зону от djanto настроек.
Update1: Мне не нужно, чтобы преобразовать datetime.now()
в свое время .. Мне нужно преобразовать строку в DateTime ..
Любой помочь?
Заранее спасибо
Какой тип поля вы используете в своей модели? 'DateField()'? Если это так, вы можете просто передать два объекта 'date' (' start_date' и 'end_date') в ваш фильтр' created_at__range =() '. – gtlambert
Возможный дубликат [Python Timezone conversion] (http://stackoverflow.com/questions/10997577/python-timezone-conversion) –
@ lambo477 Это 'DateTimeField', и я попытался это сделать .. но он все еще не хватает нескольких часов от utc. – jarussi