导入execl时的时间转换问题

导入execl 时 原execl 为

解析后时间格式变为   44127.359525629600

此时间类型为  Delphi的日期类型 计算方式 从1899-12-30开始算 

工具类为

//入参为double  就完事了

//返回值为  outFormat 的时间格式的string类型

public Stringdouble2Date(Double d){

      String t;       

      Calendar base = Calendar.getInstance(); 

     SimpleDateFormat outFormat =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   

     //Delphi的日期类型从1899-12-30开始     

      base.set(1899, 11, 30, 0, 0, 0);       

      base.add(Calendar.DATE, d.intValue());       

      base.add(Calendar.MILLISECOND,(int)((d %1) *24 *60 *60 *1000));       

      t=outFormat.format(base.getTime());   

return t;

}

在Delphi中,TDateTime=Double,如果Java要取得Delphi开发的OCX控件的时间日期参数,必须把Double值转换为Date类型。

数据库的Date类型也是存储Double值,在Java中同上要把Double转为为Date。

你可能感兴趣的:(导入execl时的时间转换问题)