You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

疑问:44303.02359是什么日期格式?如何用JavaScript解析?

解析Google Sheets/Excel风格的日期序列号

格式说明

你遇到的44303.02359是Google Sheets和Excel通用的日期序列号格式:

  • 整数部分:从1900年1月1日开始累计的天数(Windows版Excel/Sheets的起始基准日期)
  • 小数部分:当天时间占全天的比例(0代表00:00:00,1代表23:59:59)

比如44303就是1900年1月1日加上44303天,对应2021年4月17日;0.02359则对应约0小时34分钟10秒。

JavaScript解析方法

JavaScript的new Date()不直接支持这种格式,需要手动计算转换,还要注意Excel的历史bug:它错误地将1900年判定为闰年,导致序列号≥60时需要额外减1天修正误差。

实现代码如下:

function parseSheetsDate(serial) {
  const days = Math.floor(serial);
  const timeFraction = serial - days;
  
  // 修正1900年闰年的错误
  const adjustedDays = days >= 60 ? days - 1 : days;
  
  // 1900年1月1日的UTC时间戳
  const epoch = new Date('1900-01-01').getTime();
  const msPerDay = 24 * 60 * 60 * 1000; // 一天的毫秒数
  
  // 计算总毫秒数:基准时间 + 调整后天数的毫秒 + 时间部分毫秒
  const totalMs = epoch + adjustedDays * msPerDay + timeFraction * msPerDay;
  
  return new Date(totalMs);
}

// 测试示例
const targetDate = parseSheetsDate(44303.02359);
console.log(targetDate.toLocaleString()); // 输出对应本地时区的2021年4月17日及对应时间

内容的提问来源于stack exchange,提问作者Kevin Danikowski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 13:47:38