Seite 1 von 1

Umgang mit Zeitzonen

Verfasst: Montag 3. Dezember 2007, 16:28
von sma
Ich versuche gerade zu verstehen, wie `datetime`-Objekte ticken und wundere mich, dass offenbar Python kein eingebautes Konzept für Zeitzonen hat. Ist das richtig?

Die Doku spricht von naiven und "aware" Objekten, wobei erstere der Default sind.

Doch wie setze ich jetzt eine Zeitzone? Die Klasse `tzinfo` ist abstrakt, muss ich mir wirklich selbst davon Unterklassen bauen? Das entsetzt mich etwas, da bin ich von Java besseres gewohnt. Wie ermittle ich denn die aktuelle Zeitzone plattformübergreifend?

Ich möchte eigentlich im Programm ausschließlicht mit UTC arbeiten und auf lokale Zeit nur für die Ausgabe ausweichen - schon daher, weil bei Webanwendungen, deren User über mehr als eine Zeitzone verteilt sind, ansonsten Chaos ausbricht.

Bonusfrage: Wieso liefert fstat(..).st_ctime etwas, das ich nicht in ein `datetime`-Objekt verwandeln kann (warum ist das nicht bereits so ein Objekt? ja, ja, historische Gründe) sondern warum gibt es noch ein `time`-Objekt, mit dem man noch nicht einmal rechnen kann. Grummel.

Stefan

Verfasst: Montag 3. Dezember 2007, 18:17
von rayo
Hi

Schau dir mal das Modul dateutil an.

Gruss

Verfasst: Montag 3. Dezember 2007, 20:47
von gerold
Hallo!

Hier habe ich auch noch einen Link für dich:

http://pypi.python.org/pypi/pytz/

Schau dir auch das Beispiel auf der Homepage http://pytz.sourceforge.net/ an.

mfg
Gerold
:-)

Verfasst: Sonntag 9. Dezember 2007, 10:47
von sma
Danke für die Links. Das IMHO traurige Resumé ist aber, Python kann's standardmäßig nicht. Java hatte doch auch seine Vorteile.

Stefan

Verfasst: Sonntag 9. Dezember 2007, 11:06
von gerold
sma hat geschrieben:Java hatte doch auch seine Vorteile.
Hallo Stefan!

Nur weil ein Haus aus Pappe auch Vorteile hat, möchte ich trotzdem nicht darin wohnen. ;-)

mfg
Gerold
:-)

Verfasst: Sonntag 9. Dezember 2007, 11:14
von BlackJack
Die Frage ist wozu man das braucht. Die meisten Leute können sowieso nicht richtig damit umgehen. Zeitzonen sind nichts "technisches" sondern etwas "politisches" und damit recht unregelmässig und unschön.

Verfasst: Sonntag 9. Dezember 2007, 16:23
von mitsuhiko
sma hat geschrieben:Danke für die Links. Das IMHO traurige Resumé ist aber, Python kann's standardmäßig nicht. Java hatte doch auch seine Vorteile.
Wenn man bedenkt wie oft sich die tz Datenbank ändert... Sei froh, dass datetime Objekte zumindest einen Hook für tzinfo Objekte haben. Und wie gesagt "sudo easy_install pytz" und das Problem hat sich.

Verfasst: Sonntag 9. Dezember 2007, 23:13
von BlackJack
Gerade in den Tagesthemen ein schönes Beispiel für den Zeitzonenirrsinn gesehen: Chavez's Venezuela to get its own time zone :-)

Verfasst: Montag 10. Dezember 2007, 08:21
von Leonidas
Wird also Zeit für tzdata 2007j....