如何在Django中为特定时区时间创建datetime对象
我有一个时间点,想让用户在他们各自的时区到来的时候收到提醒。这个时间是以时间字段的形式存储的:
reminder = models.TimeField(blank=True, null=True)
每个用户都有一个与之相关的时区。它的格式是这样的:
customer1_timezone = customer1.time_zone #la timezone
customer2_timezone = customer2.time_zone #ny timezone
假设客户1和客户2都设置了在早上7点提醒。
我该如何根据每个用户的时区来表示早上7点呢?
1 个回答
2
我用的是这样的代码
def user_time(time_value, customer):
tz = pytz.timezone(customer.time_zone)
c_tz = pytz.timezone(settings.TIME_ZONE)
d_tz = c_tz.normalize(c_tz.localize(time_value))
return tz.normalize(d_tz.astimezone(tz))
这段代码可以获取客户的时间,然后你只需要检查一下是不是早上7点。你甚至可以用strftime()来做到这一点。具体来说,就是用这个方法:user_time(datetime.now(), customer).strftime("%H") == "07"