def days_at_time(days, t, tz, day_offset=0):
"""
Create an index of days at time ``t``, interpreted in timezone ``tz``. The returned index is localized to UTC.
In the example below, the times switch from 13:45 to 12:45 UTC because
March 13th is the daylight savings transition for US/Eastern. All the
times are still 8:45 when interpreted in US/Eastern.
>>> import pandas as pd; import datetime; import pprint
>>> dts = pd.date_range('2016-03-12', '2016-03-14')
>>> dts_at_845 = days_at_time(dts, datetime.time(8, 45), 'US/Eastern')
>>> pprint.pprint([str(dt) for dt in dts_at_845])
['2016-03-12 13:45:00+00:00',
'2016-03-13 12:45:00+00:00',
'2016-03-14 12:45:00+00:00']
:param days: DatetimeIndex An index of dates (represented as midnight).
:param t: datetime.time The time to apply as an offset to each day in ``days``.
:param tz: pytz.timezone The timezone to use to interpret ``t``.
:param day_offset: int The number of days we want to offset @days by
:return: DatetimeIndex of date with the time t
"""
if len(days) == 0:
return pd.DatetimeIndex(days).tz_localize(tz).tz_convert('UTC')
# Offset days without tz to avoid timezone issues.
days = DatetimeIndex(days).tz_localize(None)
delta = pd.Timedelta(
days=day_offset,
hours=t.hour,
minutes=t.minute,
seconds=t.second,
)
return (days + delta).tz_localize(tz).tz_convert('UTC')
market_calendar.py 文件源码
python
阅读 21
收藏 0
点赞 0
评论 0
评论列表
文章目录