2016-05-29 14 views
0

Ich möchte das aktuelle Datum für eine bestimmte Zeitzone in meiner Django-App abrufen, unabhängig von der Zeitzone des Servers. Ich speichere die Zeitzone des Benutzers in der Datenbank. Ich werde dann in der folgenden Funktion:Das aktuelle Datum in einer bestimmten Zeitzone abrufen 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 

Es scheint, zu arbeiten, aber mit Zeitzonen arbeiten scheint komplex und ich frage mich, ob etwas mit diesem Ansatz schief gehen?

Antwort

0

Es sieht gut aus, solange Sie den Wert in der Ansicht selbst erreichen, was Sie wollen. Da das Datum/Zeit-Druck ein Aspekt der Präsentation können Sie wahrscheinlich nicht wollen, dass es in der Ansicht Code zu tun, eher in der Vorlage so etwas wie unten verwenden:

{% Last tz%}

{{Objekt. datetime_field | timezone: request.user.timezone}}

vorausgesetzt, dass Sie die Zeitzonenauswahl des Benutzers im Benutzermodell speichern.