Y a-t-il quelqu'un qui peut m'aider à comprendre ce qui se passe ici?Pourquoi pytz localize() ne produit-il pas un objet datetime avec tzinfo correspondant à l'objet tz qui l'a localisé?
import pytz
from datetime import datetime
tz = pytz.timezone('Europe/Berlin')
print repr(tz)
# <DstTzInfo 'Europe/Berlin' LMT+0:53:00 STD>
dt = datetime(2011, 1, 3, 18, 40)
result = tz.localize(dt)
print repr(result.tzinfo)
# <DstTzInfo 'Europe/Berlin' CET+1:00:00 STD>
assert result.tzinfo == tz, "Why aren't these the same timezone?"
Je crois comprendre que la méthode localize()
sur un objet fuseau horaire pytz prendrait un objet datetime naïf, et ajouter une propriété tzinfo
correspondant à l'objet de fuseau horaire effectuer la localisation. Cela ne semble pas se produire dans ce cas. De toute évidence, il y a quelque chose que je ne comprends pas à propos des fuseaux horaires, ou de la façon dont pytz gère les fuseaux horaires. Quelqu'un peut-il expliquer?
Nous vous remercions de votre commentaire. Bonne prise sur le CET/CEST. C'était un mauvais copier-coller de ma part (maintenant édité). J'avais expérimenté à la fois une date de l'heure d'été et une date de non-heure d'été. J'ai essayé d'exécuter ceci sous Python 3.4 avec le plus récent pytz, et j'ai obtenu le même résultat. S'il vous plaît voir: https://gist.github.com/bjmc/59d8650ae3d2aebb7584 Vos informations sur la source de données tz est appréciée. Cela signifie-t-il que l'attribut 'tzinfo' d'une date localisée [moderne] ne serait jamais comparable à l'objet abstraite de timezone de pytz? – bjmc
En général, je ne considérerais jamais qu'un 'tzinfo' serait comparable à un autre' tzinfo' sans une date et une heure spécifiques. Cependant, si vous savez que les deux objets proviennent de pytz (ou de [tzlocal] (https://pypi.python.org/pypi/tzlocal)), vous pouvez comparer leurs propriétés '.zone', qui contiennent simplement la chaîne de caractères l'identifiant de zone ("" Europe/Berlin "). –
Je ne suis pas sûr que ce soit une réponse. C'est juste de répéter que c'est un problème. Le problème se produit lorsque vous essayez également de remplacer le tzinfo d'un objet datetime. –