我在Excel表格(xlsx)中的一个单元格中保存了日期为24-Jun-13。 虽然正在重新开始,但它正在向我展示2013年6月17日
守则
String ret="";
if(c.getCellType()==Cell.CELL_TYPE_NUMERIC)
{
if(col==0)
{
ret=new java.text.DecimalFormat("0").format(c.getNumericCellValue());
}
else if(col==8)
{
if(HSSFDateUtil.isCellDateFormatted(c))
{
DateFormat df=new SimpleDateFormat("DD-MMM-YYYY");
ret=df.format(c.getDateCellValue());
}
}
else
{
ret=""+c.getNumericCellValue();
}
}
else if(c.getCellType()==Cell.CELL_TYPE_STRING)
{
ret=""+c.getStringCellValue();
}
return ret;
请帮帮我。
先谢谢。
答案 0 :(得分:3)
使用:
DateFormat df=new SimpleDateFormat("dd-MMM-yyyy");
而不是
DateFormat df=new SimpleDateFormat("DD-MMM-YYYY");
,因为:
D =一年中的一天 d =每月的日子
答案 1 :(得分:1)
检查您的日期模式:dd / MMM / yyyy应解决您的问题。
Here是一个文档,您可以在其中找到有关如何正确构建日期模式的信息。
答案 2 :(得分:1)
为什么不让Apache POI为您进行格式化?它将读取Excel中单元格上应用的格式规则,然后根据这些
格式化日期您可以使用Apache POI中的DataFormatter class执行此操作。给它一个单元格,它将读取格式规则,理解它们,然后格式化单元格的值
您需要做的就是:
DataFormatter fmt = new DataFormatter();
String ret = fmt.formatCellValue(cell);
这适用于数字,日期,百分比,作品!
答案 3 :(得分:0)
尝试更改
DateFormat df=new SimpleDateFormat("DD-MMM-YYYY");
ret=df.format(c.getDateCellValue());
经
DateFormat df=new SimpleDateFormat("dd-MMM-YYYY");
ret=df.format(c.getDateCellValue());