【问题标题】:Python Quantlib convert Quantlib Date to datetimePython Quantlib 将 Quantlib 日期转换为日期时间
【发布时间】:2017-12-18 15:52:11
【问题描述】:

我有一个以 quantlib 的日期格式定义的日期列表。如何将这些转换为日期时间格式。我问的原因是,我想绘制它并收到以下错误:

TypeError: float() 参数必须是字符串或数字,而不是“日期”

执行以下操作时:

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)
]

【问题讨论】:

    标签: python datetime matplotlib quantlib quantlib-swig


    【解决方案1】:

    没有预定义的转换,因此您必须从 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] 来转换列表。

    【讨论】:

    • 非常感谢。这就是我一直在寻找的:)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多