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
?