In der settings.py
Datei meines Django-Projekts habe ich folgende Zeile:
TIME_ZONE = 'UTC'
Ich möchte jedoch, dass meine App in der Zeitzone UTC + 2 ausgeführt wird. Deshalb habe ich sie in geändert
TIME_ZONE = 'UTC+2'
Es gibt den Fehler ValueError: Incorrect timezone setting: UTC+2
. Was ist der richtige Weg, dies zu tun?
Vielen Dank!
Um einen Satz aller gültigen Zeitzone Namen (ids) Suche von der tz - Datenbank , könnten Sie verwenden
pytz
Modul in Python :quelle
pytz.common_timezones
.Wählen Sie eine gültige Zeitzone aus der tzinfo-Datenbank . Sie neigen dazu, die Form anzunehmen, zB
Africa/Gaborne
undUS/Eastern
Suchen Sie diejenige, die der Stadt in Ihrer Nähe entspricht, oder diejenige, die Ihre Zeitzone hat, und stellen Sie dann Ihren Wert so ein
TIME_ZONE
, dass er übereinstimmt.quelle
Gültige Zeitzonenwerte basieren auf der von Linux und anderen Unix-Systemen verwendeten tz-Datenbank (Zeitzonendatenbank). Die Werte sind Zeichenfolgen (xsd: Zeichenfolge) in der Form " Bereich / Ort ", in der:
Das Gebiet ist ein Kontinent oder ein Ozeanname. Der Bereich umfasst derzeit:
Ort ist die Stadt, die Insel oder ein anderer regionaler Name.
Die Zonennamen und Ausgabeabkürzungen entsprechen den UNIX-Konventionen von POSIX (Portable Operating System Interface), bei denen positive (+) Vorzeichen westlich von Greenwich und negative (-) Vorzeichen östlich von Greenwich verwendet werden, was das Gegenteil von dem ist, was allgemein erwartet wird. Zum Beispiel entspricht „Etc / GMT + 4“ 4 Stunden hinter UTC (dh westlich von Greenwich) und nicht 4 Stunden vor UTC (koordinierte Weltzeit) (östlich von Greenwich).
Hier ist eine Liste aller gültigen Zeitzonen
Sie können die Zeitzone in Ihrer settings.py wie folgt ändern
quelle
Ich habe diese Frage gefunden, um die Zeitzone in der
settings.py
Datei meines Django-Projekts nach Großbritannien zu ändern .Unter Verwendung der tz-Datenbank in der jfs-Lösung fand ich die Antwort:
quelle
Ändern Sie die TIME_ZONE in Ihre lokale Zeitzone und behalten Sie USE_TZ in 'settings.py' als True bei:
TIME_ZONE = 'Asien / Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = True
Dadurch wird das datetime-Objekt als UTC in die Backend-Datenbank geschrieben und gespeichert.
Verwenden Sie dann das Vorlagen-Tag , um die UTC-Zeit in Ihrer Frontend-Vorlage als solche zu konvertieren:
oder verwenden Sie die Vorlagenfilter kurz :
Weitere Details finden Sie im offiziellen Dokument: Standardzeitzone und aktuelle Zeitzone
Wenn die Unterstützung für Zeitzonen aktiviert ist, speichert Django Datums- / Uhrzeitinformationen in UTC in der Datenbank, verwendet zeitzonenbezogene Datums- / Uhrzeitobjekte intern und übersetzt sie in Vorlagen und Formularen in die Zeitzone des Endbenutzers.
quelle
Universelle Lösung, basierend auf der TZ - Namensunterstützung von Django :
+/- wird absichtlich umgeschaltet.
quelle
Laden Sie die neueste Pytz-Datei (pytz-2019.3.tar.gz) herunter von:
Kopieren Sie es und extrahieren Sie es in das
site_packages
Verzeichnis Ihres ProjektsGehen Sie in cmd zum extrahierten Ordner und führen Sie Folgendes aus:
TIME_ZONE = 'Etc/GMT+2'
oder Ländernamequelle