Excel奇怪的时间戳。如何将其转换回正常的时间戳?

Excel奇怪的时间戳。如何将其转换回正常的时间戳?,excel,actionscript-3,timestamp,Excel,Actionscript 3,Timestamp,我使用Flash和as3将Excel时间戳转换为正常时间戳,从而转换为正常日期 我有这个功能 public static function dateFromExcel(date:Number):Date { return new Date(1970, 0, 1 + (date - 25569)); } 如果我只需要一个正确的日期(年、月、日),这就可以了。但现在我有一个时间,它显示在Excel中,如下所示: 1:00:00 public st

我使用Flash和as3将Excel时间戳转换为正常时间戳,从而转换为正常日期

我有这个功能

    public static function dateFromExcel(date:Number):Date {
         return new Date(1970, 0, 1 + (date - 25569));
    }
如果我只需要一个正确的日期(年、月、日),这就可以了。但现在我有一个时间,它显示在Excel中,如下所示:

    1:00:00
    public static function dateFromExcel(date:Number):Date {
    var sec_ind_day:Number = 86400;
    var secs:Number = sec_ind_day*date%1;
    var _d:Date = new Date(1970, 0, 1 + (date - 25569));
    return new Date(_d.fullYear, _d.month, _d.date, _d.hours, _d.minutes, secs);
}
但该单元的真正价值是:

    1/1/1900 1:00:00 AM
那是Excel自动格式化的文件。现在,当我阅读带有as3代码的Excell时,就像读日期一样,我得到了十进制数。这一次我得到了:

    1.0416666666666667
    Mon Jan 1 00:00:00 GMT+0200 1900
当我对这个十进制数运行相同的函数时,我得到:

    1.0416666666666667
    Mon Jan 1 00:00:00 GMT+0200 1900
这显然是错误的。
当我得到这个函数时,我只能处理日期而不能处理时间。任何人都可以看看这个,并找出,如何获得时间来使用这个函数吗?

当我写这个问题的时候,我自己也找到了答案。 据记录,excel时间戳是从1900/01/01开始的总天数。 这意味着小数点后的数字是一天的百分比。对我来说,我只是把这个数字乘以一天中的总秒数,得到了正确的时间。功能如下:

    1:00:00
    public static function dateFromExcel(date:Number):Date {
    var sec_ind_day:Number = 86400;
    var secs:Number = sec_ind_day*date%1;
    var _d:Date = new Date(1970, 0, 1 + (date - 25569));
    return new Date(_d.fullYear, _d.month, _d.date, _d.hours, _d.minutes, secs);
}
所以,任何有同样问题的人,这应该很好