2016-02-27 2 views
0

Je tente d'analyser une date de CSV comme ceci:Comment analyser correctement Joda DateTime avec SuperCSV?

2016-03-01 

Pour DateTime Joda avec SuperCSV Dozer, comme ceci:

private static final String[] FIELD_MAPPING = new String[] {"date"}; 

final CellProcessor[] processors = new CellProcessor[] { 
    new ParseDateTime(DateTimeFormat.forPattern("YYYY-MM-DD")) 
}; 

CsvDozerBeanReader beanReader = new CsvDozerBeanReader(
    new FileReader("/path/to.csv"), CsvPreference.STANDARD_PREFERENCE); 
beanReader.configureBeanMapping(MyDateHoldingBean.class, FIELD_MAPPING); 
MyDateHoldingBean bean = beanReader.read(EmployeeDetails.class, processors) 

Le DateTime retourné est la date actuelle & temps, pas une représentation de la date lue à partir de CSV.

Est-ce que je fais mal?

+0

n'est pas la même chose que' y' - vous devriez utiliser "yyyy-MM-DD" comme format de date –

Répondre

0

Vous manquez une étape; vous devez configurer le mappage Dozer. À l'heure actuelle cela doit être fait avec un DozerBeanMapper:

final CellProcessor[] processors = new CellProcessor[] { 
    new ParseDateTime(DateTimeFormat.forPattern("yyyy-MM-dd")) 
}; 

DozerBeanMapper mapper = new DozerBeanMapper(); 
mapper.addMapping(new FileInputStream("/path/to/dozer.xml")); 

CsvDozerBeanReader beanReader = new CsvDozerBeanReader(new FileReader("/path/to.csv"), 
    CsvPreference.STANDARD_PREFERENCE, mapper); 
MyDateHoldingBean bean = beanReader.read(MyDateHoldingBean.class, processors) 

où dozer.xml ressemble:

<?xml version="1.0" encoding="UTF-8"?> 
<mappings xmlns="http://dozer.sourceforge.net" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://dozer.sourceforge.net 
     http://dozer.sourceforge.net/schema/beanmapping.xsd"> 

    <mapping> 
     <class-a>org.supercsv.io.dozer.CsvDozerBeanData</class-a> 
     <class-b>your.package.MyDateHoldingBean</class-b> 
     <field copy-by-reference="true"> 
      <a>columns[0]</a> 
      <b>date</b> 
     </field> 
    </mapping> 
</mappings> 

Voir ce `Y` question