newvem / pytz

MIT License
60 stars 12 forks source link

'Europe/Dublin' sometimes set to defunct "Dublin Mean Time" timezone #9

Closed further-reading closed 3 years ago

further-reading commented 6 years ago

I'm trying to have a script that works with local time in Ireland but it seems that when you set a datetime object to Europe/Dublin and convert to UTC it adds 25 minutes and doesn't offset during DST.

>>> import datetime, pytz
>>> test = datetime.datetime(2018, 3, 1, 8, tzinfo=pytz.timezone('Europe/Dublin'))
>>> test.astimezone(pytz.timezone('UTC')).time()
datetime.time(8, 25)
>>> testDST = datetime.datetime(2018, 3, 30, 8, tzinfo=pytz.timezone('Europe/Dublin'))
>>> testDST.astimezone(pytz.timezone('UTC')).time()
datetime.time(8, 25)

It appears that it might be using Dublin Mean Time, which has been defunct since 1916.

Interestingly, this does not happen when going from UTC to Europe/Dublin.

>>> import datetime, pytz
>>> test = datetime.datetime(2018, 3, 1, 8, tzinfo=pytz.timezone('UTC'))
>>> test.astimezone(pytz.timezone('Europe/Dublin')).time()
datetime.time(8, 0)
>>> testDST = datetime.datetime(2018, 3, 30, 8, tzinfo=pytz.timezone('UTC'))
>>> testDST.astimezone(pytz.timezone('Europe/Dublin')).time()
datetime.time(9, 0)
further-reading commented 3 years ago

I realized that this is actually a fork and the real repo is at https://github.com/stub42/pytz