Python: Weird Verhalten mit pytz Zeitzonen

Ich bin in Argentinien, meine Zeit ist GMT-3 (http://wwp.greenwichmeantime.com/time-zone/south-america/argentina/)

Ich spielte mit Pytz und bemerkte etwas komisches, werfen Sie einen Blick:

from pytz import timezone bsas = timezone('America/Argentina/Buenos_Aires') gmt_plus_3 = timezone('Etc/GMT+3') gmt_min_3 = timezone('Etc/GMT-3') # Date and time at this momement: 2012-07-26 10:23:01 fmt = '%Y-%m-%dT%H:%M:%S' datetime.now(bs).strftime(fmt) #'2012-07-26T10:23:01' <-- GOOD! datetime.now(gmt_min_3).strftime(fmt) #'2012-07-26T16:25:21' <-- WRONG! datetime.now(gmt_plus_3).strftime(fmt) #'2012-07-26T10:23:01' <-- GOOD! WTF! 

Ich würde erwarten:

 GMT-3 should be 10:23:01 and gives me 16:23:01 GMT+3 should be 16:23:01 and gives me 10:23:01 

Ist das ein Fehler? Bin ich es falsch?

One Solution collect form web for “Python: Weird Verhalten mit pytz Zeitzonen”

Es ist kein Fehler, es ist ein Feature ( Wikipedia: Tz_Database ):

Das spezielle Gebiet von Etc wird für einige Verwaltungszonen verwendet, besonders für "Etc / UTC", die koordinierte Weltzeit repräsentiert. Um sich mit dem POSIX-Stil anzupassen, haben diese Zonennamen, die mit "Etc / GMT" beginnen , ihr Zeichen umgekehrt von dem, was die meisten Leute erwarten. In diesem Stil haben die Zonen westlich von GMT ein positives Zeichen und die Ost haben ein negatives Vorzeichen in ihrem Namen (zB "Etc / GMT-14" ist 14 Stunden voraus / östlich von GMT.)

  • Pytz auf Mac installieren
  • Zeitzone auf einem bestehenden Django-Projekt ändern
  • Pytz.astimezone nicht für Tageseinsparungen?
  • Python-datetime-Objekt zeigt falschen Zeitzonen-Offset
  • Mit python, um festzustellen, ob ein Zeitstempel unter Sommerzeit ist
  • Der erste Aufruf zur pytz.timezone ist in virtualenv langsam
  • UnknownTimeZoneError bei Verwendung von RequestContext
  • Pytz utc umwandlung
  • Pytz und astimezone () können nicht auf eine naive datetime angewendet werden
  • Berechnen den mittleren Umsatz pro Minute über 24-Stunden-Zyklen nach Ortszeit (HH: MM)
  • Unerwartete Ergebnisse, die Zeitzonen in Python umwandeln
  • Python ist die beste Programmiersprache der Welt.