将字符串转换为 Quantlib Date()
convert string into Quantlib Date()
我正在从 csv 中读取一些参数数据,我正在努力转换日期以便它被 class Date()
接受
我试过了:
d = datetime.date(datetime.strptime('2011-03-07','%Y-%m-%d'))
Date(d)
但是 returns:
NotImplementedError: Wrong number or type of arguments for overloaded
function 'new_Date'.
quantlib documentation 建议您传递以下参数,而不是 Python datetime
.
Date (Day d, Month m, Year y)
目前似乎没有 Python API 文档,但根据 this answer,它与 C++ 相匹配,那么它应该可以简单地为每个值。也就是说,您将为 2011 年 3 月 3 日传递以下参数。
Date(3, 3, 2011)
要从字符串转换,您可以手动解析字符串,或像您所做的那样使用日期时间class。
d = datetime.strptime('2011-03-07','%Y-%m-%d')
quantDate = Date(d.day, d.month, d.year)
考虑使用 dateutil
模块。
from dateutil import parser
parser.parse('2011-03-07')
# datetime.datetime(2011, 3, 7, 0, 0)
您的代码不正确。
更改此行:
d = datetime.date(datetime.strptime('2011-03-07','%Y-%m-%d'))
对此:
datetime.datetime.strptime(date_text, '%Y-%m-%d')
这是一个小改动,但应该有所帮助。
QuantLib 提供了一个 DateParser
class 无需通过 datetime
即可完成工作;你可以写
d = DateParser.parseFormatted('2011-03-07','%Y-%m-%d')
获取您的 Date
实例。这也适用于 C++,您可以在其中编写
Date d = DateParser::parseFormatted('2011-03-07','%Y-%m-%d')
或通过 SWIG 导出 QuantLib 的其他语言。
我正在从 csv 中读取一些参数数据,我正在努力转换日期以便它被 class Date()
接受我试过了:
d = datetime.date(datetime.strptime('2011-03-07','%Y-%m-%d'))
Date(d)
但是 returns:
NotImplementedError: Wrong number or type of arguments for overloaded function 'new_Date'.
quantlib documentation 建议您传递以下参数,而不是 Python datetime
.
Date (Day d, Month m, Year y)
目前似乎没有 Python API 文档,但根据 this answer,它与 C++ 相匹配,那么它应该可以简单地为每个值。也就是说,您将为 2011 年 3 月 3 日传递以下参数。
Date(3, 3, 2011)
要从字符串转换,您可以手动解析字符串,或像您所做的那样使用日期时间class。
d = datetime.strptime('2011-03-07','%Y-%m-%d')
quantDate = Date(d.day, d.month, d.year)
考虑使用 dateutil
模块。
from dateutil import parser
parser.parse('2011-03-07')
# datetime.datetime(2011, 3, 7, 0, 0)
您的代码不正确。
更改此行:
d = datetime.date(datetime.strptime('2011-03-07','%Y-%m-%d'))
对此:
datetime.datetime.strptime(date_text, '%Y-%m-%d')
这是一个小改动,但应该有所帮助。
QuantLib 提供了一个 DateParser
class 无需通过 datetime
即可完成工作;你可以写
d = DateParser.parseFormatted('2011-03-07','%Y-%m-%d')
获取您的 Date
实例。这也适用于 C++,您可以在其中编写
Date d = DateParser::parseFormatted('2011-03-07','%Y-%m-%d')
或通过 SWIG 导出 QuantLib 的其他语言。