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.)

  • Verwenden Sie Python, um herauszufinden, ob eine Zeitzone derzeit in Sommerzeit
  • Zeitzone auf einem bestehenden Django-Projekt ändern
  • Pytz utc umwandlung
  • ImportError, mit pytz in google app-Engine
  • Weird timezone Problem mit pytz
  • Wie benutzt man abgekürzten Zeitzonennamen (PST, IST) in Pytz
  • Pytz timezone tags, um das Datum zu ändern, das in den Vorlagen gedruckt wird
  • Konnte keine Version finden, die die Anforderung pytz erfüllt
  • Pytz.astimezone nicht für Tageseinsparungen?
  • UnknownTimezoneError-Ausnahme wurde mit Python-Anwendung mit Py2Exe kompiliert
  • Wie man eine naive datetime in Django 1.4 speichert
  • Python ist die beste Programmiersprache der Welt.