熊猫:如何将UTC时间转换为当地时间?

时间:2019-02-07 09:22:16

标签: python-3.x pandas datetime

我有日期和时间的熊猫系列time,例如:

UTC:  
 0   2015-01-01 00:00:00
1   2015-01-01 01:00:00
2   2015-01-01 02:00:00
3   2015-01-01 03:00:00
4   2015-01-01 04:00:00
Name: DT, dtype: datetime64[ns] 

我想转换为另一个时区:

time2 = time.dt.tz_localize('UTC').dt.tz_convert('Europe/Rome')
print("CET: ",'\n', time2)

CET:  
0   2015-01-01 01:00:00+01:00
1   2015-01-01 02:00:00+01:00
2   2015-01-01 03:00:00+01:00
3   2015-01-01 04:00:00+01:00
4   2015-01-01 05:00:00+01:00
Name: DT, dtype: datetime64[ns, Europe/Rome]

但是,结果不是我所需要的。我希望它的格式为2015-01-01 02:00:00(UTC当地时间1:00:00),而不是2015-01-01 01:00:00+01:00

我该怎么做?

编辑:虽然还有一个问题可以解决这个问题(Convert pandas timezone-aware DateTimeIndex to naive timestamp, but in certain timezone),但我认为这个问题更重要,为出现常见问题提供了清晰明了的示例。

1 个答案:

答案 0 :(得分:0)

我发现我的问题已经在这里有了答案: Convert pandas timezone-aware DateTimeIndex to naive timestamp, but in certain timezone

我只是无法正确表达我的问题。无论如何,有效的方法是:

time3 = time2.dt.tz_localize(None)
print("Naive: ",'\n', time3)

Naive:  
 0   2015-01-01 01:00:00
1   2015-01-01 02:00:00
2   2015-01-01 03:00:00
3   2015-01-01 04:00:00
4   2015-01-01 05:00:00
Name: DT, dtype: datetime64[ns]`