CSVwriter Writerall изменяет формат даты набора результатов с помощью java

Я экспортирую таблицу на сервере sql в файл CSV с помощью csvwriter (opencsv), формат даты изменен в файле csv. фактический формат даты на сервере sql - ГГГГ-ММ-ДД ЧЧ:МИ:СС, но он преобразуется в 19 сентября 2014 г. 09:13:00. Я использую ОС Ubuntu.


person Sravan K Reddy    schedule 06.01.2015    source источник


Ответы (3)


У меня была та же проблема, но похоже, что вы можете установить формат, который будет использовать CSVWriter:

CSVWriter csvWriter = ..
ResultSetHelperService resultSetHelperService= new ResultSetHelperService();
resultSetHelperService.setDateFormat("yyyy-MM-dd");
resultSetHelperService.setDateTimeFormat("yyyy-MM-dd HH:MI:SS");
csvWriter.setResultService(resultSetHelperService);
person Mick    schedule 11.09.2019

В вашем запросе сделайте так, чтобы дата, возвращаемая из запроса sql, была в формате, который вам нравится. Например:

 SELECT lastName, DATE_FORMAT(someDate,'%Y-%m-%d %T') AS columnName from mytable

Таким образом, когда он будет возвращен в модуль записи CSV, он будет в выбранном вами формате. Затем вы можете использовать запрос для прокрутки и записи.

        String[] columns = {"lastName","columnName"};

        writer.writeNext(columns);

        while(rs.next()){

            String[] values = {
                    rs.getString("lastName"),
                    rs.getString("columnName")
                    };

             writer.writeNext(values);
        }
person ZakiMak    schedule 06.01.2015
comment
Я сбрасываю таблицу в csv (выберите * операцию) Writer = new CSVWriter(new OutputStreamWriter(new FileOutputStream(имя файла), UTF-16),CSVWriter.DEFAULT_SEPARATOR,CSVWriter.NO_QUOTE_CHARACTER,CSVWriter.DEFAULT_LINE_END); писатель.writeAll (rset, ложь); - person Sravan K Reddy; 06.01.2015
comment
Хорошо, обновил мой ответ. Пожалуйста, проверьте. Пример, который я привел, отлично работал с MySQL. Вам нужна подобная вещь, я считаю. - person ZakiMak; 06.01.2015
comment
Я конвертирую как CONVERT(DATETIME, tblDoctor.[PasscodeDate], 105) AS Doctor_PasscodeDate . Хотя я получаю то же самое. когда я печатаю набор результатов, я получаю правильный формат. Но когда я пишу в файл с помощью метода writeall (rset), я получаю эту проблему. это может быть проблема csvwriter. в любом случае спасибо за помощь - person Sravan K Reddy; 06.01.2015
comment
В этом я не знаю имен столбцов (фамилия, имя), запроса, который я получаю из файла конфигурации, и даю оператор выполнения и дамп в файл csv. у нас нет запросов на выборку в конфигурационном файле. - person Sravan K Reddy; 06.01.2015

Отформатируйте запрос следующим образом:

select ''||to_date(your_date_field, 'yyyy-mm-dd') from your_table 

Добавление пустой строки в выбранное поле даты заставило CSVWriter рассматривать ее как строку и записывать как есть.

person Kannan    schedule 20.01.2017