簡體   English   中英

將字符串轉換為Quantlib Date()

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM