我在我的应用中使用时区感知对象,除非我有一个TimeField代表一般的每日时段:
class MyModel(models.Modal):
...
start_time = models.TimeField()
但是,在某些时候,我需要使用服务器的时区将当前时间timezone.now()
与start_time进行比较,以查看任何一天的时间是否过去。
如何将start_time
转换为可与timezone.now()
进行比较的时区感知日期时间对象?
我正在使用USE_TZ = True
答案 0 :(得分:1)
这是一种简单的方法:
from django.utils.timezone import now, localtime
if model.start_time >= localtime(now()).time():
# do stuff
请注意,localtime()
使用当前时区,如果未明确设置,则为默认时区。如果那不是你想要的,你可以指定所需的时区作为localtime()
的参数。
另请注意,从Django 1.11开始,您只需使用localtime().time()
。