获取特定时区的当前日期django
Getting the current date in a particular timezone django
我想在我的 Django 应用程序中获取特定时区的当前日期,而不考虑服务器的时区。我将用户的时区保存在数据库中。然后我将在以下函数中使用它:
def current_date(zone):
utc = timezone.now()
tz = pytz.timezone(zone)
return utc.astimezone(tz).date()
print(current_date('Pacific/Auckland')) #prints 2016-05-30
print(current_date('Africa/Accra')) #prints 2016-05-29
它似乎可行,但使用时区似乎很复杂,我想知道这种方法是否会出错?
看起来不错,只要获得视图中的值本身就是您想要的。由于 date/time 打印是演示的一个方面,您可能不想在视图代码中执行此操作,而是在模板中使用如下内容:
{% 负载 tz %}
{{ object.datetime_field|时区:request.user.timezone }}
假设您将用户的时区选择存储在用户模型中。
我想在我的 Django 应用程序中获取特定时区的当前日期,而不考虑服务器的时区。我将用户的时区保存在数据库中。然后我将在以下函数中使用它:
def current_date(zone):
utc = timezone.now()
tz = pytz.timezone(zone)
return utc.astimezone(tz).date()
print(current_date('Pacific/Auckland')) #prints 2016-05-30
print(current_date('Africa/Accra')) #prints 2016-05-29
它似乎可行,但使用时区似乎很复杂,我想知道这种方法是否会出错?
看起来不错,只要获得视图中的值本身就是您想要的。由于 date/time 打印是演示的一个方面,您可能不想在视图代码中执行此操作,而是在模板中使用如下内容:
{% 负载 tz %}
{{ object.datetime_field|时区:request.user.timezone }}
假设您将用户的时区选择存储在用户模型中。