我正在尝试使用以下内容记录某一天的所有记录:
entered_at = request.session['entered_at']
entered_at = datetime.strptime(entered_at, "%m-%d-%Y")
day_start = entered_at.replace(hour=00, minute=00)
day_end = entered_at.replace(hour=23, minute=59)
entries = Entry.objects.filter(
customer=customer,
entered_at__lt=day_end,
entered_at__gte=day_start
)
当我这样做时,我在控制台中收到以下警告:
DateTimeField收到了一个天真的日期时间,而时区支持是 活性
我知道我可以添加以下内容:day_start = entered_at.replace(hour=00, minute=00, tzinfo=<UTC>)
但是,如果我使用UTC,这将不会使相对于用户时区的午夜到晚上11:59的范围。
如何相对于用户时区表达一整天?
答案 0 :(得分:0)
我相信你想要这样的东西,使用pytz库。见How to make an unaware datetime timezone aware in python:
import pytz
entered_at = request.session['entered_at']
entered_at = datetime.strptime(entered_at, "%m-%d-%Y")
day_start = entered_at.replace(hour=00, minute=00)
day_end = entered_at.replace(hour=23, minute=59)
timezone = pytz.timezone("America/Los_Angeles")
day_start = timezone.localize(day_start)
day_end = timezone.localize(day_end)
entries = Entry.objects.filter(customer=customer,
entered_at__lt=day_end,
entered_at__gte=day_start)