0

我正在用 Java 做一些 Excel 到 XML 的转换。我在 Excel 工作表中有一个日期字段,格式如下:dd/mm/yyyy

我希望我的 Java 代码在读取 excel 工作表中的记录时验证格式。我有以下代码,但它并不适合我。任何输入都会非常有帮助。

注意:无论我在工作表中更改什么格式,它仍然显示为空白。

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;
}   
4

1 回答 1

0

我怀疑这是否是 SDF 类的宽松模式的问题。您需要将其设置为 false 否则它将任何数字转换为“附近”日期。

于 2013-09-13T23:18:53.197 回答