Apache Excel中的日期时间戳(POI)

Apache Excel中的日期时间戳(POI),apache,apache-poi,Apache,Apache Poi,我需要一些Apache poi方面的帮助 我正在使用ApachePOI生成excel HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); HSSFRow row = sheet.createRow(2); HSSFCell cell = row.createCell(1); cell.setCellValue(someService.getDate()); 我正在以日期

我需要一些Apache poi方面的帮助

我正在使用ApachePOI生成excel

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();

HSSFRow row = sheet.createRow(2);

HSSFCell cell = row.createCell(1);

cell.setCellValue(someService.getDate());
我正在以日期格式获取此日期,时间戳为MM/dd/yyyy 00:00:00 am

但在生成Excel之后,它并没有以DateFormat显示其正确的值


有什么解决方案吗?

我认为最简单的解决方案是将日期值设置为格式化字符串

...
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
cell.setCellValue(simpleDateFormat.format(someService.getDate()));

您需要告诉Excel要应用于单元格的格式,以便它知道如何设置格式

你可能想要像这样的东西

Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("new sheet");
CreationHelper createHelper = wb.getCreationHelper();

// Cell styles can be re-used, create only once
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setDataFormat(
    createHelper.createDataFormat().getFormat("m/d/yy h:mm"));


....
// In your loop
Row row = sheet.createRow(i);
Cell cell = row.createCell(1);

Date value = service.getDate();
cell.setCellValue(value);
cell.setCellStyle(cellStyle);