我正在和Postgres一起运行Django。
- 我想从数据库返回时区感知日期时间对象。
- 我希望查询集中的所有日期时间都设置为用户的语言环境,而不是UTC。
- 如果我在设置中设置
import pandas as pd import numpy as np def RandomTimestamp(start, end): dts = (end - start).total_seconds() return start + pd.Timedelta(np.random.uniform(0, dts), 's')
,我可以在查询集中获取时区感知日期,但它们都是UTC格式。- 如果
醇>USE_TZ=True
并设置USE_TZ=False
,我可以在用户的正确语言环境中恢复我的结果,但日期都是天真的。
默认情况下,如何在查询集中返回的用户区域设置中获取时区感知日期时间?
循环显示结果并手动设置它们不是一个选项。这太慢了。
我对Django在渲染时将日期转换为用户时区的能力不感兴趣,即在模板或序列化器中。我需要在视图之前移动时区以进行处理。
注意:我想我已经在这个主题上阅读了整个互联网,发现一个SO帖子(Ouput timezone aware django datetime fields without filters)接近我想要解决的同一个问题,但没有提供解决方案。