Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Excel导出文件中的不同日期。为什么它们相差1天?_Java_Excel_Jxl - Fatal编程技术网

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

Java Excel导出文件中的不同日期。为什么它们相差1天?,java,excel,jxl,Java,Excel,Jxl,我正在导出Excel文件(.xls),在导出的其他数据中有三个日期列。 Excel文件列中的日期值相差一天,我不知道为什么?!?!?! 我已经调试了Java代码中的行,日期为2013年8月1日,但Excel文件中显示的日期与2013年7月31日相同。 我已经调试了我的代码,日期是100%的8月1日。 那么为什么Excel中的日期是2013年7月31日呢。有一个该死的一天的区别 在这些方面: ... case "java.sql.Timestamp": { ws.addCell(new

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

在这些方面:

...
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日。一天的差异。。。 但是为什么呢?你能解释一下吗

致以最良好的祝愿

我有一个解决办法。 首先,我将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;
}

现在它正在工作。。。很奇怪,因为我不知道为什么。。。它正在工作…

可能是时区问题?最明显的怀疑是时区不匹配。检查日期的时间部分。好的,谢谢你的回答,但是我可以在哪里或如何检查?