如何在python中获取时区感知午夜日期时间?

eug*_*ene 5 python timezone datetime date

我在 django 中工作,但标准的 python 解决方案也可以。

我正在将使用 naive-datetime 的代码转换为使用感知日期时间。

下面是原代码:

today = datetime.today()
MyClass.objects.filter(datetimefield__range=(today, today+datetime.timedelta(1)) )
Run Code Online (Sandbox Code Playgroud)

如何将其转换为使用时区感知时间?

如果本地时间是 jun/3rd/7:20pm,
我想获得日期时间范围[jun/3rd/00:00am, jun/4th/00:00am] (午夜到午夜,其中包括now

ddi*_*quo 4

我知道这已经很老了,但是使用 django.utils.timezone 这是相当简单的。(对我来说,关于时区的事情似乎都不那么容易)

# this is could be any datetime.date
my_date = timezone.now().date()
dt_at_local_midnight = timezone.make_aware(
    timezone.datetime.combine(my_date, time.min), 
    timezone.get_current_timezone())
Run Code Online (Sandbox Code Playgroud)

下面的第一条评论中列出了可能更好的替代方案。