Umgang mit Zeitzonen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Montag 3. Dezember 2007, 16:28

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
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Montag 3. Dezember 2007, 18:17

Hi

Schau dir mal das Modul dateutil an.

Gruss
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Montag 3. Dezember 2007, 20:47

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Sonntag 9. Dezember 2007, 10:47

Danke für die Links. Das IMHO traurige Resumé ist aber, Python kann's standardmäßig nicht. Java hatte doch auch seine Vorteile.

Stefan
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Sonntag 9. Dezember 2007, 11:06

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BlackJack

Sonntag 9. Dezember 2007, 11:14

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.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Sonntag 9. Dezember 2007, 16:23

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.
TUFKAB – the user formerly known as blackbird
BlackJack

Sonntag 9. Dezember 2007, 23:13

Gerade in den Tagesthemen ein schönes Beispiel für den Zeitzonenirrsinn gesehen: Chavez's Venezuela to get its own time zone :-)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 10. Dezember 2007, 08:21

Wird also Zeit für tzdata 2007j....
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten