我使用单义性来解析 csv 文件。但我无法将字符串格式的日期解析为 java.util.Date。@Format(formats ="YYYY-MM-DD") 注释似乎不起作用。
我正在尝试解析行
2015-04-30,67,"P",1972-02-28,2006-08-11,"97912a4321dd510","49d180ecf56132819571bf39d9b7b34"
但它在解析后给了我这种格式,它不是 YYYY-MM-DD。你能帮助我吗?
day=2014 年 12 月 28 日星期日 00:00:00 CET,id=5151,type=B,originDate=1950 年 12 月 31 日星期日 00:00:00 CET,relDate=2010 年 12 月 26 日星期日 00:00:00 CET,legalId=3bbfca2849c01ad , 名称=236e5fcfd21603c33b82ddd89bab7c4
我的模型课:
import java.util.Date;
import com.univocity.parsers.annotations.Format;
import com.univocity.parsers.annotations.Parsed;
public class Customer {
@Format(formats ="YYYY-MM-DD")
@Parsed(field="C_DAY")
private Date day;
@Parsed(field="C_ID")
private Integer id;
@Parsed(field="C_TYPE")
private Character type;
@Format(formats ="YYYY-MM-DD")
@Parsed(field="C_ORIGIN_DATE")
private Date originDate;
@Format(formats ="YYYY-MM-DD")
@Parsed(field="C_REL_DATE")
private Date relDate;
@Parsed(field="C_LEGAL_ID")
private String legalId;
@Parsed(field="C_NAME")
private String name;
使用方法测试输出:
public void parse(File file) throws IOException {
CsvParserSettings parserSettings = new CsvParserSettings();
parserSettings.getFormat().setLineSeparator("\n");
parserSettings.setHeaderExtractionEnabled(true);
CsvRoutines routines = new CsvRoutines(parserSettings);
for (Customer customer : routines.iterate(Customer.class, file, "UTF-8")) {
System.out.println(customer);
}
}