이 두 부분의 코드가 있습니다.
arraylist에 추가하는 것은 작동하지 않으며 f arrylist는 항상 비어 있습니다. 출력 디버그 창에서받은 유일한 메시지는 Unparseable date : "2014-12-09 00 : 00 : 00.0"for each Fattura입니다.
private ArrayList<Fattura> getFatture() throws SQLException {
String localDb;
String unformattedQuery;
ArrayList<Fattura> ftt = new ArrayList<Fattura>();
if (this.serviceSelection.getSelectedItem() == "Energia") {
localDb = EmailCheckerGUI.DbEnergia;
unformattedQuery = ServiceQuery.RECUPERAFATTUREENERGIA.getQuery();
} else {
localDb = EmailCheckerGUI.DbGas;
unformattedQuery = ServiceQuery.RECUPERAFATTUREGAS.getQuery();
}
DbHandlerContext db = new DbHandlerContext(new SqlServerConcrete(EmailCheckerGUI.user, EmailCheckerGUI.pwd, localDb));
String formattedQuery = String.format(unformattedQuery,
BillIntervalContainer.getFormattedMinDataFatt("MM/dd/yyyy"),
BillIntervalContainer.getFormattedMaxDataFatt("MM/dd/yyyy"),
BillIntervalContainer.minFattNumber, BillIntervalContainer.maxFattNumber);
ResultSet r = db.executeQuery(formattedQuery);
while (r.next()) {
try {
boolean addingelement = false;
String ioError = "";
try {
addingelement = ftt.add(new Fattura(r.getInt("id"), r.getString("servizio"), r.getString("email"),
r.getString("denominazione"), r.getString("data_fattura"), r.getString("data_scadenza"), r.getString("path_fattura"),
r.getInt("inviato"), r.getString("report"), r.getInt("numero_fattura"), r.getInt("id_documento")));
} catch (IOException ex) {
Logger.getLogger(EmailCheckerGUI.class.getName()).log(Level.SEVERE, null, ex);
ioError = ex.getMessage();
}
if (!addingelement) {
if (!"".equals(ioError)) {
addToLog("Impossibile aggiungere alla lista di invii la fattura numero " + r.getString("numero_fattura"));
} else {
addToLog("Impossibile aggiungere alla lista di invii la fattura numero " + r.getString("numero_fattura") + ": " + ioError);
}
} else {
System.out.println(r.getString("numero_fattura"));
}
} catch (ParseException ex) {
System.out.println(ex.getMessage());
}
}
return ftt;
}
과
Fattura( int id, String service, String email,
String name, String dateBill, String dateScad, String path,
int sent, String report, int billNumber, int idDocument) throws ParseException, IOException{
this.id = id;
this.service = service;
this.email = email;
this.name = name;
this.path = path;
this.report = report;
this.sent = sent;
this.billNumber = billNumber;
this.dateBill = new SimpleDateFormat("yyyy-MM-dd").parse(dateBill);
this.dateScad = new SimpleDateFormat("yyyy-MM-dd").parse(dateScad);
this.idDocument = idDocument;
this.pdfDocument = new PdfValidator(null, this.name, dateBill, String.valueOf(this.billNumber), String.valueOf(0), this.path);
}
내가 어디에서 틀렸는 지 아십니까? 감사
yyyy 대신 YYYY 주를 사용하고 있습니다. SimpleDateFormat 문서를 살펴보십시오 . 모든 패턴과 몇 가지 유용한 예제를 찾을 수 있습니다.
이제 yyyy-MM-dd
2014-12-09 만 구문 분석합니다. 날짜 이후에도 시간이 있다면 다음과 같이 사용해야합니다.yyyy-MM-dd HH:mm:ss.S
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다