Django rest框架:Django_filters.DateTimeFilter转换时区

Django rest框架:Django_filters.DateTimeFilter转换时区,django,django-rest-framework,django-filter,Django,Django Rest Framework,Django Filter,我使用django_过滤器过滤大于datetime的日期 比如说 http://127.0.0.1:8000/movies/?datetimefilter=2014-11-18 但是我保存的2014-11-18是utc时间, 所以实际上我所在时区的时间可能是2014-11-19 如何让时区在我的视图中从utc转换为Asia/Taipei。py 请教我,非常感谢 我的观点 class MovieFilter(django_filters.FilterSet): datetimefilte

我使用
django_过滤器
过滤大于
datetime的日期

比如说

http://127.0.0.1:8000/movies/?datetimefilter=2014-11-18
但是我保存的
2014-11-18
是utc时间,
所以实际上我所在时区的时间可能是
2014-11-19

如何让时区在我的视图中从
utc
转换为
Asia/Taipei
。py

请教我,非常感谢

我的观点

class MovieFilter(django_filters.FilterSet):
    datetimefilter = django_filters.DateTimeFilter(name="datetime",lookup_type="gte")    
    class Meta:
        model = Movie
        fields = ['datetimefilter']

如果您只想更改项目的时区,可以在
settings.py
中设置
时区='Asia/Taipei'

如果您想将输入日期从UTC转换到另一个时区(亚洲/台北),这将达到以下目的:

首先,请执行
pip安装pytz

然后,您可以执行以下操作:

>>> import pytz as tz
>>> import datetime
>>> from django.utils.timezone import *
>>> utc_date = datetime.datetime.strptime('2014-11-18', '%Y-%m-%d')
>>> utc_date
datetime.datetime(2014, 11, 18, 0, 0)
>>> aware_date = make_aware(utc_date, utc)
>>> localtime(aware_date, tz.timezone('Asia/Taipei'))
datetime.datetime(2014, 11, 18, 8, 0, tzinfo=<DstTzInfo 'Asia/Taipei' CST+8:00:00 STD>)
>>将pytz导入为tz
>>>导入日期时间
>>>从django.utils.timezone导入*
>>>utc_date=datetime.datetime.strtime('2014-11-18','%Y-%m-%d'))
>>>utc_日期
datetime.datetime(2014,11,18,0,0)
>>>意识到日期=使意识到(utc意识到日期,utc)
>>>本地时间(aware_date,tz.时区(“亚洲/台北”))
datetime.datetime(2014,11,18,8,0,tzinfo=)

有关详细文档,请参见

,因此我必须转换到我的时区并保存??我想这就是您的问题:让时区在您的
视图中从
utc
转换到
Asia/Taipei