JavaでExcelからXMLへの変換を行っています。次の形式の Excel ワークシートに 1 つの日付フィールドがあります: dd/mm/yyyy
Excel ワークシートでレコードを読み取るときに、Java コードでフォーマットを検証する必要があります。次のコードがありますが、実際には機能していません。どんな入力でも本当に役に立ちます。
注:ワークシートでどのような形式を変更しても、空白のままです。
public void setEffectiveDate(String effectiveDate) {
boolean result = isValidDateFormat(effectiveDate);
if(result == true){
Date date = HSSFDateUtil.getJavaDate(Double
.parseDouble(effectiveDate));
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
this.effectiveDate = dateFormat.format(date);
}
else{
this.effectiveDate = null;
}
}
public static boolean isValidDateFormat(String date) {
boolean isValid = false;
Date date2 = HSSFDateUtil.getJavaDate(Double
.parseDouble(date));
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Calendar cal = Calendar.getInstance();
try {
cal.setTime(sdf.parse(date));
if (date2.equals(sdf.format(cal.getTime()))) {
isValid = true;
}
} catch (Exception e) {
isValid = false;
}
return isValid;
}