雅虎财经无法解析的日期
Yahoo Finance Unparseable Date
我正在尝试使用 yahoo finance api 为 java 从 yahoo finance 提取股票数据。直到昨天我的程序都运行良好,当这段代码停止工作时,抛出以下错误:
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)
这是我停止工作的部分的代码,如果有帮助,我可以 post 完整的代码。我知道错误是在解析返回的 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");
此问题已在 v1.2.3 中修复(同时提供 v1.3.0,推荐使用)
此外,如果库无法解析分红日期,它会向日志文件写入错误(例如:SEVERE: Unparseable date: "11/17/2014"
),但异常被捕获,分红日期将只是null
。
Yahoo Finance 有可能根本 return 没有任何股息日期,所以请在尝试使用它之前检查它是否 null
。
如果您遇到这样的问题,请不要犹豫,通过 Github 创建问题。
我正在尝试使用 yahoo finance api 为 java 从 yahoo finance 提取股票数据。直到昨天我的程序都运行良好,当这段代码停止工作时,抛出以下错误:
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)
这是我停止工作的部分的代码,如果有帮助,我可以 post 完整的代码。我知道错误是在解析返回的 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");
此问题已在 v1.2.3 中修复(同时提供 v1.3.0,推荐使用)
此外,如果库无法解析分红日期,它会向日志文件写入错误(例如:SEVERE: Unparseable date: "11/17/2014"
),但异常被捕获,分红日期将只是null
。
Yahoo Finance 有可能根本 return 没有任何股息日期,所以请在尝试使用它之前检查它是否 null
。
如果您遇到这样的问题,请不要犹豫,通过 Github 创建问题。