SimpleDateFormat: ParseException, но строковая дата выглядит нормально - PullRequest
0 голосов
/ 15 мая 2018

У меня есть этот код, с data[][] сборкой из com.codename1.io.CSVParser

SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
Date tmpData = sdf2.parse(data[i][0]);

Все работает нормально, но когда я импортирую файл CSV, я получаю это исключение для каждой строки

com.codename1.l10n.ParseException: Unparseable string 2010‑12‑18

Я что-то упустил? Спасибо за вашу помощь. Давида.

1 Ответ

0 голосов
/ 15 мая 2018

Проблема скрыта в вашем символе разделителя даты.

Ваш CSV-файл использовал этот символ «-» (не-специальный символ клавиатуры), в то время как ваш форматтер использует «-» (символ клавиатуры и немного больше). Это кажется похожим, и разница почти невидима для человеческого глаза, но они разные.

Ваша CSV-кодировка также может быть проблемой, и желательно, чтобы вы кодировали CSV в UTF-8 стандарте.

Решение:

  • Скопируйте разделитель символов непосредственно из одной из ваших строк даты CSV и используйте его в своем форматере.

  • Замените ошибочный символ повсюду в CSV на символ клавиатуры "-" и используйте его в форматере.

...