maxframe.dataframe.Series.dt.tz_convert#

Series.dt.tz_convert(tz) Self#

将具有时区信息的 Datetime Array/Index 从一个时区转换为另一个时区。

参数:

tz (str, zoneinfo.ZoneInfo, pytz.timezone, dateutil.tz.tzfile, datetime.tzinfo or None) -- 时间的时区。相应的 时间戳 将被转换为 Datetime Array/Index 的此 时区。tz 为 None 时将转换为 UTC 并移除时区信息。

返回:

Datetme Array/Index with target tz.

返回类型:

Array or Index

抛出:

TypeError -- 如果 Datetime Array/Index 是不具有时区信息的。

参见

DatetimeIndex.tz

一个与 UTC 具有可变偏移量的时区。

DatetimeIndex.tz_localize

将不具有时区信息的 DatetimeIndex 本地化为给定时区,或从具有时区信息的 DatetimeIndex 中移除时区。

示例

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

>>> import maxframe.dataframe as md
>>> dti = md.date_range(
...     start="2014-08-01 09:00", freq="h", periods=3, tz="Europe/Berlin"
... )
>>> dti.execute()
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[us, Europe/Berlin]', freq='h')
>>> dti.tz_convert("US/Central").execute()
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[us, US/Central]', freq='h')

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

>>> dti = md.date_range(
...     start="2014-08-01 09:00", freq="h", periods=3, tz="Europe/Berlin"
... )
>>> dti.execute()
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[us, Europe/Berlin]', freq='h')
>>> dti.tz_convert(None).execute()
DatetimeIndex(['2014-08-01 07:00:00',
               '2014-08-01 08:00:00',
               '2014-08-01 09:00:00'],
                dtype='datetime64[us]', freq='h')