Java Apache POI-生成的日期不可相应排序

Java Apache POI-生成的日期不可相应排序,java,excel,apache-poi,Java,Excel,Apache Poi,使用ApachePOIAPI,我已经能够在Excel上正确生成整数和浮点。我可以验证它们是否正确,尤其是在使用排序功能时 我只是将值强制转换为它们各自的类型,其余的由API处理 但是,这种技术不适用于日期(我将它们转换为java.util.Date),它们的格式正确,但排序不准确 有什么建议吗 我尝试了两种选择: 第一个:cell.setCellValue(新日期(值)) 第二种格式:cell.setCellValue(新的SimpleDataFormat(“dd/MM/yyyy”).forma

使用ApachePOIAPI,我已经能够在Excel上正确生成整数和浮点。我可以验证它们是否正确,尤其是在使用排序功能时

我只是将值强制转换为它们各自的类型,其余的由API处理

但是,这种技术不适用于日期(我将它们转换为
java.util.Date
),它们的格式正确,但排序不准确

有什么建议吗

我尝试了两种选择:

第一个:
cell.setCellValue(新日期(值))


第二种格式:
cell.setCellValue(新的SimpleDataFormat(“dd/MM/yyyy”).format(新的日期(值))

按相反顺序获取代码:

cell.setCellValue(new SimpleDateFormat("dd/MM/yyyy").format(new Date(value)));
不要这样做。它将日期转换为字符串,就像在Excel中,您进入一个单元格并键入
'01/01/2010
-将前面的
'
强制转换为字符串一样


这就快到了。您需要遵循,还需要按照所需的日期格式将单元格格式化为日期单元格

例如,对于
dd/mm/yyyy
,在文件顶部附近执行以下操作:

CreationHelper createHelper = wb.getCreationHelper();
CellStyle dateCellStyle = wb.createCellStyle();
dateCellStyle.setDataFormat(
    createHelper.createDataFormat().getFormat("dd/MM/yyyy"));
然后为您的单元格设置+样式

cell.setCellValue(new Date(value));
cell.setCellStyle(dateCellStyle);

是否使用其中一个for date?否,日期的格式来自SQL。您可能需要按照中所示明确设置格式。要设置的日期格式是一个内置信息格式。您可以发布用于创建日期单元格的代码吗?你们可能在那个里做错了什么,但并没有代码,我们很难说出来……问题更新了代码。伙计,你们太棒了。谢谢你丰富的回答!
cell.setCellValue(new Date(value));
cell.setCellStyle(dateCellStyle);