Дата финансов Yahoo непонятна
Я пытаюсь получить данные о запасах из финансов Yahoo с помощью API финансов Yahoo для 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 ответ
Эта проблема была исправлена в версии 1.2.3 (в настоящее время доступна версия 1.3.0, что рекомендуется)
Кроме того, если библиотека не может проанализировать дату дивидендов, она запишет ошибку в файл журнала (например: SEVERE: Unparseable date: "11/17/2014"
), но исключение поймано и дата дивидендов будет просто null
,
Yahoo Finance может вообще не возвращать дату дивидендов, поэтому, пожалуйста, проверьте, null
прежде чем пытаться использовать его.
Если вы столкнулись с такой проблемой, пожалуйста, не стесняйтесь создавать проблему через Github.