我有一个.xlsx
文件,其中有一个包含日期的表格。当我将表格读入 javascript(使用 xlsx nodejs 包)时,日期被格式化为数字。我想将这些数字转换为日期。例如,数字 43527 应该是日期 13/03/2019。我已经尝试过new Date(43527*60*60*24*1000)
,但这给出了错误的答案2089-03-04T00:00:00.000Z
。
问问题
159 次
1 回答
0
Excel 使用 OLE 自动化日期 (OADate) 在内部存储日期。
基本 OLE 自动化日期是 1899 年 12 月 30 日午夜。OLE 自动化日期以浮点数形式实现,其整数部分是 1899 年 12 月 30 日午夜之前或之后的天数,其小数部分表示当天的时间除以 24。 [ https://docs.microsoft.com/en-us/dotnet/api/system.datetime.tooadate?view=netcore-3.1#remarks]
在转换为毫秒之前,您需要减去 25,569,即 1899 年 12 月 30 日到 1970 年 1 月 1 日之间的天数。
要转换日期:
var excelDate = 43527;
var parsedDate = new Date((excelDate - 25569) * 86400 * 1000)).toISOString();
于 2020-05-19T16:58:51.753 回答