为了账号安全,请及时绑定邮箱和手机立即绑定

将 Pandas 时间戳的时区设置为 Boise

将 Pandas 时间戳的时区设置为 Boise

白衣非少年 2021-12-08 16:17:47
我想将 unix 时间读入时间戳并分配博伊西的时区。当前时区有“MDT – Mountain Daylight Time(夏令时)”。它将在冬季切换到 MST。当我想让它不依赖于夏季/冬季时间时,正确的时区是什么?我想要这样的东西pd.Timestamp(1513393355, unit='s', tz='US/Pacific')
查看完整描述

2 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

一些东西:

  • 一般来说,应该America/Denver用于美国山地时间的大部分时间,目前在 MST (UTC-7) 和 MDT (UTC-6) 之间切换。

  • 使用America/Phoenix美国山区标准时间的一部分,它不是目前使用DST,如适用于大多数(但不是全部),亚利桑那州的。

    • 但是,请注意它过去曾经使用过夏令时,最后一次是在 1968 年。

  • 使用Etc/GMT+7,如果你需要一个固定的偏移量为UTC-7和从来没有过DST。请注意,偏移量的符号是有意反转的 ( Etc/GMT+7UTC-7)。

    • 如果您将此区域用于海上船舶以外的任何时间,那么您可能应该重新评估此决定。换句话说,如果您的数据来自确实使用 DST的本地时区,那么您不应选择忽略它的时区。

  • 您可以使用America/Boise,但您应该只将它用于爱达荷州南部和俄勒冈州东部地区,该地区于 1974 年晚四个星期开始夏令时(1974-02-03而不是1974-01-06),如TZ 数据库来源的评论中所述

# Southern Idaho (Ada, Adams, Bannock, Bear Lake, Bingham, Blaine,

# Boise, Bonneville, Butte, Camas, Canyon, Caribou, Cassia, Clark,

# Custer, Elmore, Franklin, Fremont, Gem, Gooding, Jefferson, Jerome,

# Lemhi, Lincoln, Madison, Minidoka, Oneida, Owyhee, Payette, Power,

# Teton, Twin Falls, Valley, Washington counties, and the southern

# quarter of Idaho county) and eastern Oregon (most of Malheur County)

# switched four weeks late in 1974.


    • 如果您不使用 1974 年的时间戳,那么您可以忽略此区域并使用America/Denver.

  • 可以使用US/Mountain,但要了解它作为 的别名链接America/Denver并被视为已弃用。它的存在是为了向后兼容。

    • 通常建议使用Area/Locality形式的规范标识符而不是这些较旧的表示形式。请参阅维基百科上的 TZ 数据库时区列表


查看完整回答
反对 回复 2021-12-08
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

这解释1513393355为 UTC 中的时间戳,然后将时间戳转换为时America/Boise区:


In [57]: pd.Timestamp(1513393355, unit='s', tz='UTC').tz_convert('America/Boise')

Out[57]: Timestamp('2017-12-15 20:02:35-0700', tz='America/Boise')

Pandas 依赖于pytz时区计算。pytz取决于 Olson 数据库。Olson 数据库包含每个时区的 utc 偏移历史记录。因此,您不必担心夏令时是否在特定日期生效。tz_convert会为你解决这个问题。


您可以使用 来查看所有选项pytz.timezones。


有一个US/Mountain时区,但它已被弃用。有关相关选项的更多权威信息,请参阅Matt Johnson 的回答。


查看完整回答
反对 回复 2021-12-08
  • 2 回答
  • 0 关注
  • 291 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信