2016-04-17 3 views
1

У меня есть тысячи PDF-документов. Загружая их в мои базы данных, некоторые из них имеют ошибку преобразования, которая говорит [IOException: Error converting date: '£gLùY‹»’î]G…ˇÅìùJÌ܇^'], или [IOException: Error converting date: 'D:191000724110432']. Документы с ошибкой даты также имеют тот же формат, что и остальные. enter image description hereДата преобразования

Вот моя функция преобразования:

public static String getProperDate(Calendar cal) { 
     SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
     String properDate = dateFormat.format(cal.getTime()); 
     return properDate; 
    } 

я получаю ту же ошибку, если я изменить формат, как (dd-MMM-yyyy).

Является ли эта ошибка из-за формата pdf или кодирования? Все мои pdf-файлы имеют одинаковый формат, но некоторые из них показывают эту ошибку.

Я использую PDFBox для получения метаданных pdf.

PDDocument document = PDDocument.load(file); 
PDDocumentInformation info = document.getDocumentInformation(); 
indexed.creationDate = getProperDate(info.getCreationDate()); 
+0

Я склонен согласиться с предыдущим комментарием, проблемой локали, эта дата выглядит чешской/словацкой? как вы его загружаете? через Интернет? язык браузера, начать с него и проверить. – t0mm13b

+2

Этот код кажется не связанным с заявленной проблемой, или, по крайней мере, неясно, как он используется. См. [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) в справочном центре. –

+0

Это боснийский. Я использую Play Framework для загрузки книг в базу данных. Обычно он преобразуется, как, например, '29-06-2011'. Но, как я уже сказал, некоторые из них не преобразуются, даже если они имеют регулярное время. –

ответ

1

Обратите внимание на формат декодирования строк. Попробуйте использовать для String properDate = new String (dateFormat.format (cal.getTime()), "UTF-8");

Смежные вопросы