Excel导出文件中的不同日期。为什么他们相差1天?

时间:2014-09-16 08:55:58

标签: java excel jxl

我正在导出Excel文件(.xls),并且导出中的其他数据中有三个日期列。 Excel文件列中的日期值相差一天,我不知道为什么?!?!?! 我已经在Java代码中删除了这些行,并且日期是2013年8月1日,但在Excel文件中,相同的日期显示为2013年7月31日。 我调试了我的代码,日期是8月1日的100%。 那么为什么Excel中的日期是2013年7月31日。相差1天...

在这些方面:

...
case "java.sql.Timestamp":
{
    ws.addCell(new  jxl.write.DateTime((i), row, new java.util.Date(((java.sqlTimestamp) o).getTime())));
    break;
}
...

日期是2013年8月1日。在Excel中写有2013年7月31日.1天不同... 但为什么?你可能有解释吗?

祝你好运

1 个答案:

答案 0 :(得分:0)

我有一个解决方案。 首先,我将Excel格式从xsl更改为xslx。 第二,我使用了像这样的CellStyle格式:

CellStyle dateStyle = wb.createCellStyle();
DataFormat df = wb.createDataFormat();
dateStyle.setDataFormat(df.getFormat("dd.mm.yyyy"));
...
case "java.sql.Timestamp":
{
  cell.setCellStyle(dateStyle);
  cell.setCellValue(new Date(((Timestamp) o).getTime()));
  break;
}

现在它正在运作......非常奇怪,因为我不确定为什么......它正在运作......