我刚刚阅读
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?
答案 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以供参考。
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'