当前位置: 首页 > 知识库问答 >
问题:

在传递字符串对象时使用apache poi格式化日期

锺离锦
2023-03-14

我需要将excel中的日期单元格格式设置为dd/mm/yyyy

我很感激这可能不是“正确”的标准,但是,这是客户想要的。。。

我传入单元格的日期格式为yyyy-mm-dd

所以

我有这个代码:

Cell dateCell;
dateCell = row.createCell(3);
dateCell.setCellValue(p.getDateOfBirth());
CellStyle dateCellStyle = WorkBook.createCellStyle();
dateCellStyle.setDataFormat(creationHelper.createDataFormat().getFormat("dd/mm/yyyy"));
dateCell.setCellStyle(dateCellStyle);

根据这一点:http://www.kscodes.com/java/writing-various-date-formats-in-excel-using-poi/ (1)

我认为应该有效。但是当我创建excel文件时,日期仍然是yyyy-mm-dd

我在这里看到了如何使用java apache poi库在excel中设置日期字段?我注意到这条线

cell.setCellType(CellType.NUMERIC);

但(1)没有提到这一点

有人知道我做错了什么吗?

共有1个答案

薛弘济
2023-03-14

我传入单元格的日期格式为yyyy-mm-dd

这是问题的根本原因。API希望您传递一个Date对象,而您正在传递一个String对象。您需要将日期字符串解析为Date对象并将其传递给dateCell.setCellValue,如下所示:

Cell dateCell;
dateCell = row.createCell(3);
Date dateOfBirth = new SimpleDateFormat("yyyy-MM-dd").parse(p.getDateOfBirth() + "");
dateCell.setCellValue(dateOfBirth);
CellStyle dateCellStyle = WorkBook.createCellStyle();
dateCellStyle.setDataFormat(creationHelper.createDataFormat().getFormat("dd/mm/yyyy"));
dateCell.setCellStyle(dateCellStyle);
 类似资料:
  • 我在一个JSON文件中记录一些东西,我有一个datetime对象,我把它转换成一个字符串,这样我就可以在JSON中记录它(它不接受datetime对象)。 我的问题是如何将datetime字符串转换回datetime对象。我知道strptime,我只是不知道什么格式会使它与其他datetime.now对象兼容。 每当我尝试使用strtime时,我都会使用格式,并出现以下错误: 那么,默认datet

  • 问题内容: 我正在尝试将字符串“ 20091229050936”转换为“ 2009年12月29日(UTC)05:09” 给 显然,我犯了一个错误:时间是错误的,它是日期时间对象!它有一个日期 和 一个时间部分! 给 我如何将字符串转换为格式化的日期字符串? 问题答案: 返回一个; 接受作为可选参数: 给

  • 问题内容: 我最近遇到了TypeError异常,发现它很难调试。我最终将其简化为这个小测试用例: 无论如何,这对我来说不是很明显。我的代码的解决方法是将字节字符串解码为unicode: 此异常的含义是什么?有没有一种方法可以使它更清晰? 问题答案: 对象没有自己的方法,因此使用默认的from : 这只是意味着您不能在这些格式上使用简单,无格式,未对齐的格式。显式转换为字符串对象(就像通过解码到一样

  • 我有一个格式化的字符串日期 2020/04/16 (年/月/日) 我想把这个字符串解析成日期时间 显然不起作用,没有正确的日期格式。 有人知道把这个字符串解析成日期时间的最好方法是什么吗?

  • 问题内容: 嗨,我有以下字符串:2012-05-20T09:00:00.000Z,我想将其格式化为20/05/2012,9am 如何在Java中这样做? 谢谢 问题答案: 用先 来,然后 到