为什么使用pytz时萨摩亚的偏移量不为+13或+14?

时间:2018-08-29 19:00:43

标签: timezone timezone-offset pytz

我刚刚阅读

  

BBC:Samoa and Tokelau skip a day for dateline change,2011年12月30日

我想用pytz看到它,但是我尝试的所有内容仅显示了-11的偏移量,而没有显示+13 or +14的偏移量:

>>> import pytz
>>> tz = pytz.timezone('Pacific/Samoa')
>>> tz_us = pytz.timezone('US/Samoa')
>>> import datetime
>>> datetime.datetime(2011, 12, 30, 9, 00, tzinfo=datetime.timezone.utc).astimezone(tz).isoformat()
'2011-12-29T22:00:00-11:00'
>>> datetime.datetime(2011, 12, 30, 10,00, tzinfo=datetime.timezone.utc).astimezone(tz).isoformat()
'2011-12-29T23:00:00-11:00'
>>> datetime.datetime(2011, 12, 30, 11, 00, tzinfo=datetime.timezone.utc).astimezone(tz).isoformat()
'2011-12-30T00:00:00-11:00'
>>> datetime.datetime(2011, 12, 31, 15, 00, tzinfo=datetime.timezone.utc).astimezone(tz).isoformat()
'2011-12-31T04:00:00-11:00'
>>> datetime.datetime(2015, 12, 31, 15, 00, tzinfo=datetime.timezone.utc).astimezone(tz).isoformat()
'2015-12-31T04:00:00-11:00'
>>> datetime.datetime(2011, 12, 31, 15, 00, tzinfo=datetime.timezone.utc).astimezone(tz_us).isoformat()
'2011-12-31T04:00:00-11:00'
>>> datetime.datetime(2015, 12, 31, 15, 00, tzinfo=datetime.timezone.utc).astimezone(tz_us).isoformat()
'2015-12-31T04:00:00-11:00'

为什么我看不到偏移量+13 / +14?

1 个答案:

答案 0 :(得分:1)

sudo -E env "PATH=$PATH" n stable Pacific/Samoa都是US/Samoa的别名,代表美属萨摩亚,它是UTC-11,当天没有跳过。

  • 对于美属萨摩亚,请使用Pacific/Pago_Pago

  • 对于萨摩亚独立国,请使用Pacific/Pago_Pago

  • 对于托克劳,请使用Pacific/Apia

就我个人而言,我更喜欢只使用规范的区域名称。请参阅the list on Wikipedia以供参考。

查看时区随pytz的变化

UTC时间有偏移:

Pacific/Fakaofo

当地时间:

>>> import pytz
>>> tz = pytz.timezone('Pacific/Apia')
>>> import datetime
>>> datetime.datetime(2011, 12, 30, 9, 59, tzinfo=datetime.timezone.utc).astimezone(tz).isoformat()
'2011-12-29T23:59:00-10:00'
>>> datetime.datetime(2011, 12, 30, 10, 00, tzinfo=datetime.timezone.utc).astimezone(tz).isoformat()
'2011-12-31T00:00:00+14:00'