Python的:与pytz时区的迹象怪异的行为(Python: Weird behavior wit

2019-10-17 01:36发布

我在阿根廷,我的时间GMT-3(http://wwp.greenwichmeantime.com/time-zone/south-america/argentina/)

我与Pytz玩,发现了一些奇怪的,一起来看看:

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!

我期望:

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

这是一个错误? 难道我做错了?

Answer 1:

这是不是一个错误,它是一个功能( 维基百科:Tz_database ):

的等特殊区域用于一些行政区域,特别是对“ETC / UTC”,这代表协调世界时。 为了与POSIX风格接轨,以“ETC / GMT”开始的那些区域名称从大多数人希望他们的标志反转 在这种风格,GMT以西的地区有积极的迹象,那些东在他们的名字有一个负号(例如,“ETC / GMT-14”是14小时提前/ GMT以东)。



文章来源: Python: Weird behavior with signs of pytz timezones