首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pytz和Etc/GMT-5

pytz和Etc/GMT-5
EN

Stack Overflow用户
提问于 2010-10-24 15:51:22
回答 2查看 3.9K关注 0票数 11

我很难理解"Etc/GMT-5“时区和以pytz表示的UTC之间的转换。

代码语言:javascript
复制
>>> dt = datetime(2009, 9, 9, 10, 0) # September 9 2009, 10:00
>>> gmt_5 = pytz.timezone("Etc/GMT-5")
>>> gmt_5.localize(dt)
datetime.datetime(2009, 9, 9, 10, 0, tzinfo=<StaticTzInfo 'Etc/GMT-5'>)

到目前为止,一切都很好,但接下来我尝试将其转换为UTC:

代码语言:javascript
复制
>>> gmt_5.localize(dt).astimezone(pytz.utc)
datetime.datetime(2009, 9, 9, 5, 0, tzinfo=<UTC>)

所以在我看来,当我从格林尼治时间的10:00转换到UTC的时候,我得到了05:00?我希望派兹给我15:00的时间。

我遗漏了什么?

编辑:--我已经确认,美国/东部时区的时区转换工作与我预期的一样:

代码语言:javascript
复制
>>> eastern = pytz.timezone("US/Eastern")
>>> eastern.localize(dt)
datetime.datetime(2009, 9, 9, 10, 0, tzinfo=...) # Too long
>>> pytz.utc.normalize(eastern.localize(dt).astimezone(pytz.utc))
datetime.datetime(2009, 9, 9, 14, 0, tzinfo=<UTC>)

编辑2:我已经确认当我使用Etc/GMT+5时,我会得到15:00,这是我期望从Etc/GMT-5得到的。这是侏儒虫吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-24 16:27:30

这显然是POSIX的事。来自维基百科

为了符合POSIX的风格,那些以"Etc/GMT“开头的区域与大多数人所期望的相反。在这种风格下,格林尼治时间以西的地区有一个积极的迹象,而东部的地区则有一个消极的迹象。

票数 18
EN

Stack Overflow用户

发布于 2010-10-24 16:27:53

这个错误报告解释了这种行为。显然,他们知道这一切都是颠倒的,但那是因为其他任何东西都会破坏兼容性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4008960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档