Seite 1 von 1
Django Serverzeit und Datetimeformat
Verfasst: Sonntag 30. Mai 2021, 07:35
von naheliegend
Hi,
ich habe in meiner settings.py
Code: Alles auswählen
LANGUAGE_CODE = 'de-DE'
TIME_ZONE = 'Europe/Berlin'
USE_I18N = True
USE_L10N = True
USE_TZ = True
und das gibt mir in meiner Datenbank den richtigen aktuellen Zeitstempel den ich haben will. Außerdem möchte ich das deutsche Format haben und nicht irgendwas mit a.m./ p.m., aber wenn ich dann das object.datetime in meinem Template ausgebe, dann werden mir immer 2 Stunden abgezogen.
Also:
Erstelle ein Objekt am 30.05.2021 8:34:00.
Das gerendert HTML gibt dann: 30. Mai 2021 6:34 aus.
Wie fixed man das?
Re: Django Serverzeit und Datetimeformat
Verfasst: Sonntag 30. Mai 2021, 12:12
von LukeNukem
naheliegend hat geschrieben: Sonntag 30. Mai 2021, 07:35
Wie fixed man das?
Es ist nur ein Schuß ins Blaue, aber mir scheint, als würden Deine Zeitangaben an irgendeiner Stelle auf GMT (Greenwich Mean Time) zurückgerechnet. Vielleicht fehlt die Zeitzoneninformation an irgendeiner Stelle, etwa in der Datenbank? PostgreSQL zum Beispiel kennt für Timestamps jeweils einen Spaltentyp mit und einen ohne Zeitzone.
Re: Django Serverzeit und Datetimeformat
Verfasst: Sonntag 30. Mai 2021, 12:15
von sparrow
Welche Zeitzone und Location sendet der Client denn im Header mit?
Re: Django Serverzeit und Datetimeformat
Verfasst: Sonntag 30. Mai 2021, 12:42
von nezzcarth
In bestimmten Konstellationen kann es passieren, dass die entsprechenden Einstellungen des Betriebssystems als Default herangezogen werden. Daher schlage ich vor, sicherzustellen, dass die Locale-Einstellung sowie die Zeitzone dort korrekt konfiguriert sind. Gerade bei Containern wird das schon einmal vergessen.
Re: Django Serverzeit und Datetimeformat
Verfasst: Sonntag 30. Mai 2021, 14:08
von naheliegend
sparrow hat geschrieben: Sonntag 30. Mai 2021, 12:15
Welche Zeitzone und Location sendet der Client denn im Header mit?
Wo kann ich das nachschauen? Ich habe das aktuell noch auf localhost laufen und habe mit Wireshark ein GET mitgeschnitten. Im HTTP-Abschnitt finde ich nur User Agent, URI, und co.
nezzcarth hat geschrieben: Sonntag 30. Mai 2021, 12:42
In bestimmten Konstellationen kann es passieren, dass die entsprechenden Einstellungen des Betriebssystems als Default herangezogen werden. Daher schlage ich vor, sicherzustellen, dass die Locale-Einstellung sowie die Zeitzone dort korrekt konfiguriert sind. Gerade bei Containern wird das schon einmal vergessen.
Wie schaue ich die Locale-Einstellungen an?
Re: Django Serverzeit und Datetimeformat
Verfasst: Sonntag 30. Mai 2021, 15:16
von nezzcarth
Mit 'locale'. Die Zeitzone wird üblicherweise mit einem Symlink von '/etc/localtime" auf irgendwas unter '/usr/share/zoneinfo' gesetzt. Das kannst du z.B. mit 'readlink -f /etc/localtime' prüfen oder auch einfach 'ls -l /etc |grep localtime' . Unter systemd basierten Systemen (also insb. nicht Alpinelinux-Container), gibt es auch 'locatectl' und 'timedatectl', die weiterhelfen.