雅虎财务无法解释的日期

时间:2015-03-10 14:20:39

标签: java processing yahoo-finance control-p5

我正在尝试使用yahoo finance api for java从雅虎财务中提取股票数据。我的程序工作非常好,直到昨天,当这段代码停止工作时,抛出了以下错误:

SEVERE: Unparseable date: "11/17/2014"
java.text.ParseException: Unparseable date: "11/17/2014"
    at java.text.DateFormat.parse(DateFormat.java:337)
    at yahoofinance.Utils.parseDividendDate(Utils.java:176)
    at yahoofinance.quotes.stock.StockQuotesData.getDividend(StockQuotesData.java:87)
    at yahoofinance.quotes.stock.StockQuotesData.getStock(StockQuotesData.java:105)
    at yahoofinance.YahooFinance.getQuotes(YahooFinance.java:336)
    at yahoofinance.YahooFinance.get(YahooFinance.java:76)
    at yahoofinance.YahooFinance.get(YahooFinance.java:61)
    at controlp5userinterface.ControlP5UserInterface.setup(ControlP5UserInterface.java:75)
    at processing.core.PApplet.handleDraw(PApplet.java:2361)
    at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:240)
    at processing.core.PApplet.run(PApplet.java:2256)
    at java.lang.Thread.run(Thread.java:695)
Exception in thread "Animation Thread" java.lang.NullPointerException
    at controlp5userinterface.ControlP5UserInterface.setup(ControlP5UserInterface.java:76)
    at processing.core.PApplet.handleDraw(PApplet.java:2361)
    at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:240)
    at processing.core.PApplet.run(PApplet.java:2256)
    at java.lang.Thread.run(Thread.java:695)

以下是我已停止工作的部分的代码,如果有任何帮助,我可以发布完整的代码。我知道错误是在解析yahoo finance cvs文件中返回的日期,但我不知道为什么它现在发生时它事先完美地工作。

Stock[] stocks = new Stock[symbols.length];
    double[] quotePrices = new double[stocks.length];
    for(int i = 0; i<stocks.length; i++){
        String symbol = symbols[i];
        stocks[i] = YahooFinance.get(symbol); //error is here
        quotePrices[i] = stocks[i].getQuote().getPrice().doubleValue();
        System.out.println("Price: " + quotePrices[i]);
    }
    System.out.println("Finished finance import");

1 个答案:

答案 0 :(得分:3)

此问题已在v1.2.3中修复(同时v1.3.0可用,建议使用)

此外,如果库无法解析分红日期,它将向日志文件写入错误(例如:SEVERE: Unparseable date: "11/17/2014"),但是异常被捕获并且分红日期将是{{ 1}}。

雅虎财经可能根本不会返还任何股息日期,因此请在尝试使用之前检查它是否null

如果遇到这样的问题,请不要犹豫,通过Github创建问题。