pandas.Series.dt.tz_convert#

Series.dt.tz_convert(*args, **kwargs)[源代码]#

将时区感知的时间数组/索引从一个时区转换为另一个时区。

参数:
tzstr, zoneinfo.ZoneInfo, pytz.timezone, dateutil.tz.tzfile, datetime.tzinfo 或 None

时间的时间区域。相应的时间戳将被转换为日期时间数组/索引的此时间区域。tz 为 None 将转换为 UTC 并删除时区信息。

返回:
数组或索引

带有目标 tz 的 Datetme 数组/索引。

引发:
TypeError

如果 Datetime 数组/索引是时区未知的。

参见

DatetimeIndex.tz

一个相对于UTC具有可变偏移量的时区。

DatetimeIndex.tz_localize

将 tz-naive 的 DatetimeIndex 本地化到给定时区,或者从 tz-aware 的 DatetimeIndex 中移除时区。

示例

使用 tz 参数,我们可以将 DatetimeIndex 更改为其他时区:

>>> dti = pd.date_range(
...     start="2014-08-01 09:00", freq="h", periods=3, tz="Europe/Berlin"
... )
>>> dti
DatetimeIndex(['2014-08-01 09:00:00+02:00',
               '2014-08-01 10:00:00+02:00',
               '2014-08-01 11:00:00+02:00'],
              dtype='datetime64[ns, Europe/Berlin]', freq='h')
>>> dti.tz_convert("US/Central")
DatetimeIndex(['2014-08-01 02:00:00-05:00',
               '2014-08-01 03:00:00-05:00',
               '2014-08-01 04:00:00-05:00'],
              dtype='datetime64[ns, US/Central]', freq='h')

使用 tz=None,我们可以移除时区(如有必要,先转换为 UTC):

>>> dti = pd.date_range(
...     start="2014-08-01 09:00", freq="h", periods=3, tz="Europe/Berlin"
... )
>>> dti
DatetimeIndex(['2014-08-01 09:00:00+02:00',
               '2014-08-01 10:00:00+02:00',
               '2014-08-01 11:00:00+02:00'],
                dtype='datetime64[ns, Europe/Berlin]', freq='h')
>>> dti.tz_convert(None)
DatetimeIndex(['2014-08-01 07:00:00',
               '2014-08-01 08:00:00',
               '2014-08-01 09:00:00'],
                dtype='datetime64[ns]', freq='h')