Python:带有pytz时区标志的奇怪行为

2024-04-28 09:09:32 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我在和派兹玩的时候发现了一些奇怪的东西,看看:

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!

我希望:

^{pr2}$

这是虫子吗?我做错了吗??在


Tags: httpdatetimetime时间etcplusminnow
1条回答
网友
1楼 · 发布于 2024-04-28 09:09:32

它不是一个bug,而是一个特性(Wikipedia: Tz_database):

Etc的特殊区域用于某些行政区,特别是代表协调世界时的“Etc/UTC”。为了符合POSIX样式,那些以“Etc/GMT”开头的区域名称的符号与大多数人期望的相反。在这种风格下,GMT以西的区域有一个正符号,而那些东部的区域名称中有一个负号(例如,“Etc/GMT-14”比格林尼治标准时间提前14小时/以东)。

相关问题 更多 >