如何获取给定时间和状态信息的本地时区

Pat*_*bug 2 python sql datetime amazon-redshift

Python我正在使用和的组合Amazon Redshift。我有来自不同用户的点击量以及有关这些点击量的一些数据。这可以通过以下格式可视化:

UTCTime    State    IP    Country
<time>    CA    10.1.1.1    US
<time>    AZ    10.1.1.2    US
<time>    NY    10.1.1.3    US
Run Code Online (Sandbox Code Playgroud)

我想将此 UTC 时间转换为当地时间,因为上述点击来自不同的时区。中有一个函数Amazon Redshift:

CONVERT_TIMEZONE ( ['source_timezone',] 'target_timezone', 'timestamp')
Run Code Online (Sandbox Code Playgroud)

但这需要Target timezone. 根据此信息,我如何找到此目标时区。

如果还有其他方法可以做到这一点,我也很高兴知道。

任何帮助将不胜感激。

Lyc*_*cum 7

您可以通过使用us包来解决这个问题。通过 pip 添加:

$ pip install us
Run Code Online (Sandbox Code Playgroud)

状态查找方法允许通过 FIPS 代码、缩写和名称进行匹配:

>>> us.states.lookup('24')
<State:Maryland>
>>> us.states.lookup('MD')
<State:Maryland>
>>> us.states.lookup('md')
<State:Maryland>
>>> us.states.lookup('maryland')
<State:Maryland>
Run Code Online (Sandbox Code Playgroud)

正如我们的包描述中提到的,State对象具有time_zones和capital_tz属性,这些名称是不言自明的:

>>> us.states.lookup('MD').capital_tz
'America/New_York'
Run Code Online (Sandbox Code Playgroud)

和

>>> us.states.lookup('MD').time_zones
['America/New_York']
Run Code Online (Sandbox Code Playgroud)

现在您可以轻松地将州缩写翻译为完整的时区名称。