[英]convert string into Quantlib Date()
我正在從csv中讀取一些參數數據,並且正在努力轉換日期,以便日期Date()類接受該日期
我已經嘗試過:
d = datetime.date(datetime.strptime('2011-03-07','%Y-%m-%d'))
Date(d)
但它返回:
NotImplementedError:重載函數“ new_Date”的參數數量或類型錯誤。
QuantLib提供了一個DateParser
類,該類無需經過datetime
即可完成工作; 你可以寫
d = DateParser.parseFormatted('2011-03-07','%Y-%m-%d')
獲取您的Date
實例。 這也適用於C ++,您可以在其中編寫
Date d = DateParser::parseFormatted('2011-03-07','%Y-%m-%d')
或通過SWIG導出QuantLib的其他語言。
Quantlib文檔建議您應傳遞以下參數,而不是Python datetime
。
Date (Day d, Month m, Year y)
目前似乎沒有Python API文檔,但是根據此答案 ,它與C ++匹配,因此它應該為每個值簡單地傳遞整數。 也就是說,您將在2011年3月3日傳遞以下參數。
Date(3, 3, 2011)
要從字符串轉換,您可以手動解析字符串,也可以使用datetime類。
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')
這是一個很小的變化,但應該會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.