首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Django模型DateTimeField转换为本地时区并使用Q对象进行过滤

如何将Django模型DateTimeField转换为本地时区并使用Q对象进行过滤
EN

Stack Overflow用户
提问于 2019-04-12 09:35:20
回答 1查看 1.2K关注 0票数 2

如何将db DateTime字段转换为本地时间,并构造用于检索数据集的Q对象?

settings.py

代码语言:javascript
复制
LANGUAGE_CODE = 'en-us'
USER_TIME_ZONE = 'US/Pacific'
TIME_ZONE = 'UTC'
USE_TZ = True

models.py

代码语言:javascript
复制
class Hello(models.Model):

  lucky_day = models.DateTimeField()

一条db格式的记录(UTC格式)

代码语言:javascript
复制
2019-02-03 03:02:45

filter.py

代码语言:javascript
复制
# Client browser is Pacific time without time, date only.
localtime_str = '2019-3-2' 

qset_filter = Q(lucky_day<to Pacific time from UTC>=localtime_str)
EN

回答 1

Stack Overflow用户

发布于 2019-04-12 15:01:06

如果您确实希望首先将utc日期时间字段转换为本地日期时间,然后根据localdatetime进行过滤,则可以使用django聚合来实现此目的:

代码语言:javascript
复制
YourModel.objects.annotate(new_local_datetime_field=convert_to_local_datetime('lucky_day')).filter(Q(new_local_datetime_field=some_other_datetime))

将utc datetime转换为本地datetime的引用:Convert UTC datetime string to local datetime

引用django注解:https://docs.djangoproject.com/en/2.2/ref/models/querysets/#django.db.models.query.QuerySet.annotate

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55643270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档