Python Quantlib 将 Quantlib 日期转换为日期时间
Python Quantlib convert Quantlib Date to datetime
我有一个以 quantlib 的日期格式定义的日期列表。我怎样才能将这些转换成日期时间格式。我问的原因是,我想绘制它并且收到以下错误:
TypeError: float() argument must be a string or a number, not 'Date'
执行以下操作时:
plt.plot(dates,rates, linewidth=2.0) # Without date plotting works out.
日期如下所示:
[
Date(11,12,2012),
Date(12,12,2012),
Date(13,12,2012),
Date(14,12,2012),
Date(15,12,2012),
Date(16,12,2012),
Date(17,12,2012),
Date(18,12,2012),
Date(19,12,2012),
Date(20,12,2012)
]
没有预定义的转换,因此您必须从 QuantLib 日期中提取信息并使用它来构建 datetime
实例。例如,定义类似
的内容
def ql_to_datetime(d):
return datetime.datetime(d.year(), d.month(), d.dayOfMonth())
之后,您可以对单个日期使用 ql_to_datetime(d)
,对列表使用 [ ql_to_datetime(d) for d in dates ]
。 (当然,您也可以定义另一个采用列表的函数。)
更新: 在最新版本的 QuantLib-Python 中,添加了一个预定义的转换。您现在可以说 d.to_date()
来转换日期,或者说 [d.to_date() for d in dates]
来转换列表。
我有一个以 quantlib 的日期格式定义的日期列表。我怎样才能将这些转换成日期时间格式。我问的原因是,我想绘制它并且收到以下错误:
TypeError: float() argument must be a string or a number, not 'Date'
执行以下操作时:
plt.plot(dates,rates, linewidth=2.0) # Without date plotting works out.
日期如下所示:
[
Date(11,12,2012),
Date(12,12,2012),
Date(13,12,2012),
Date(14,12,2012),
Date(15,12,2012),
Date(16,12,2012),
Date(17,12,2012),
Date(18,12,2012),
Date(19,12,2012),
Date(20,12,2012)
]
没有预定义的转换,因此您必须从 QuantLib 日期中提取信息并使用它来构建 datetime
实例。例如,定义类似
def ql_to_datetime(d):
return datetime.datetime(d.year(), d.month(), d.dayOfMonth())
之后,您可以对单个日期使用 ql_to_datetime(d)
,对列表使用 [ ql_to_datetime(d) for d in dates ]
。 (当然,您也可以定义另一个采用列表的函数。)
更新: 在最新版本的 QuantLib-Python 中,添加了一个预定义的转换。您现在可以说 d.to_date()
来转换日期,或者说 [d.to_date() for d in dates]
来转换列表。