Java Excel导出文件中的不同日期。为什么它们相差1天?
我正在导出Excel文件(.xls),在导出的其他数据中有三个日期列。 Excel文件列中的日期值相差一天,我不知道为什么?!?!?! 我已经调试了Java代码中的行,日期为2013年8月1日,但Excel文件中显示的日期与2013年7月31日相同。 我已经调试了我的代码,日期是100%的8月1日。 那么为什么Excel中的日期是2013年7月31日呢。有一个该死的一天的区别 在这些方面: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
...
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;
}
现在它正在工作。。。很奇怪,因为我不知道为什么。。。它正在工作…可能是时区问题?最明显的怀疑是时区不匹配。检查日期的时间部分。好的,谢谢你的回答,但是我可以在哪里或如何检查?