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

Apache POI日期格式部分工作

法弘亮
2023-03-14

我有一些日期列,我正在用下面的代码创建这些列

CreationHelper ch = wb.getCreationHelper();
short df = ch.createDataFormat().getFormat("MM/dd/yyyy");
System.out.println(df);
CellStyle cs = wb.createCellStyle();
cs.setDataFormat(df);

Cell cell = sheet.createRow(0).createCell(0);

    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
    cell.setCellValue( sdf.parse("04/30/2013") );
    sheet.setColumnWidth(0, 6000);
    cell.setCellStyle(cs);

但问题是poi没有对某些日期单元格进行格式化,而是以451235这样的数值显示日期,而不是以“MM/DD/YYYY”格式显示日期

这里还要提到的一件事是,我使用预先创建的样式,并使用setDataFormat(df)方法调用date,而非date列使用默认格式

共有1个答案

鄂和璧
2023-03-14

.SetCellStyle(...)调用不是加性的。即,如果应用日期格式样式:

Cell.SetCellStyle(cs);

然后应用其他样式:

 类似资料:
  • 如何设置Jasper/iReports(4.5.1)中文本中显示的日期字段(数据库字段)的格式 通过报表中的文本字段显示...(请使用Groovy) “此日期小计:”+$F(存款日期) 我已尝试,但收到错误消息: 我想在我的报告中显示的内容如下... 此日期的小计:MM/DD/YYYY-格式...

  • 设定年月日的排列顺序。

  • 问题内容: 我想格式化为。我已经尝试了以下步骤。 但我低于例外。 我该怎么办? 问题答案: 在这里,这有效: 在您的第一个样式中删除多余的“ T” 第二种格式不正确,应为dd-MMM-yyyy。 看看SimpleDateFormat的Javadoc

  • 问题内容: 具有String str“ May 23 2011 12:20:00”,想要将其转换为这样的日期: 它始终为我提供ParseException Unparsable日期格式:“ May 23 2011 12:20:00”。 寻找类似的问题,似乎一切正确。 怎么了? 问题答案: 如果您的VM的默认语言环境不是英语,则可能需要另外指定 Locale :

  • 问题内容: 当我创建一个表并在mysql中创建类型为date的字段时,它会像0000-00-00一样存储日期。可以将格式更改为“ dm-Y”吗? 问题答案: 转到MySQL参考-10.5。数据类型存储要求 搜索: 日期和时间类型的存储要求 日期在内部存储为 但是,如果您选择 显示 日期列,则必须以 某种 方式 显示 它,因此它会以0000-00-00的形式出现。它 不会 以该特定格式存储为char

  • 我正在使用jquery datepicker,我想设置最小日期和最大日期来显示日期。我需要允许用户在最小和最大范围内选择日期。和dateformat也需要根据用户区域设置。 我有2个日期字段开始日期和结束日期。 但上面的代码在另一个本地国家/地区不能正常工作....它总是选择我的系统日期格式“MM/DD/YYYY”。 所以我尝试设置日期的格式var dateFormat=“dd.mm.yyyy”;