excel中日期格式是数字,想转成java的日期格式,遇到了问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel中日期格式是数字,想转成java的日期格式,遇到了问题相关的知识,希望对你有一定的参考价值。

代码很简单,如下,可以直接运行:
public static void main(String[] args)
String val="43060";
int i=Integer.parseInt(val);
DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Calendar cd=Calendar.getInstance();
cd.set(Calendar.YEAR,1900);
cd.set(Calendar.MONTH,1);
cd.set(Calendar.DATE,1);
cd.add(Calendar.DAY_OF_YEAR, i);
String STARTDATE=df.format(cd.getTime());
System.out.println("STARTDATE:"+STARTDATE);


但是算出来的日期是2017-12-24,
而实际,应该是2017-11-21,
麻烦哪位大神看看,问题在哪里

java读取excel时间格式出现数字的处理方法:
Excel存储日期、时间均以数值类型进行存储,读取时POI先判断是是否是数值类型,再进行判断转化
1、数值格式(CELL_TYPE_NUMERIC):
1.纯数值格式:getNumericCellValue() 直接获取数据
2.日期格式:处理yyyy-MM-dd, d/m/yyyy h:mm, HH:mm 等不含文字的日期格式
1).判断是否是日期格式:HSSFDateUtil.isCellDateFormatted(cell)
2).判断是日期或者时间
cell.getCellStyle().getDataFormat() == HSSFDataFormat.getBuiltinFormat("h:mm")
OR: cell.getCellStyle().getDataFormat() == HSSFDataFormat.getBuiltinFormat("yyyy-MM-dd")
3.自定义日期格式:处理yyyy年m月d日,h时mm分,yyyy年m月等含文字的日期格式
判断cell.getCellStyle().getDataFormat()值,解析数值格式
yyyy年m月d日----->31
m月d日---->58
h时mm分--->32
举例说明:
private String parseExcel(Cell cell)
String result = new String();追问

能不能帮我下,我的这段代码,为什么算出来的结果不对,差了33天

参考技术A cd.set(Calendar.MONTH, 0);
cd.set(Calendar.DATE, -1);
试试。。。

如何将Excel日期快速转化为文本格式?

Excel表中日期格式其实是数值,有时候需要原样转成文本,有时候也要将文本转成日期。

我发现了一个方法,估计是最快的了。不需要用那一堆year() month()之类的函数。

  1. 快速将日期格式转化为文本格式

    技术分享
  2. 全选——右键——设置单元格格式,

    可见,为日期格式。

    如果在这里选择文本呢?

    技术分享
  3. 变成了数字,如果选择常规或者数值,都是数字。

    我试很多办法,什么year函数,month函数,等等,麻烦要死。

    终于我发现了一个很简便的办法。

    技术分享
  4. 倒回来,全选这个区域

    技术分享
  5. 点击  数据——分列

    技术分享
  6. 弹出一个框,直接点下一步

    技术分享
  7. 再点击下一步

    技术分享
  8. 选择文本。

    点击完成

    技术分享
  9. 日期已经变成了如假包换的文本格式。

    技术分享
  10. 转回去的操作。也就是将文本格式转成日期格式。

    同样点击分列,到第3步时,选择日期

    点完成

    技术分享
  11. 又变成日期格式了。

以上是关于excel中日期格式是数字,想转成java的日期格式,遇到了问题的主要内容,如果未能解决你的问题,请参考以下文章

java读取excel时间格式出现数字怎么处理

如何将Excel日期快速转化为文本格式?

在Excel里,日期为啥变成了数字

在Excel里,日期为啥变成了数字

在Excel中,如何将数字转化成日期?

java导入excel时处理日期格式(已验证ok)