Excel 日期序列号转换教程:46023 是哪天,1900 和 1904 系统
Excel 把日期存为从 1900 年开始计数的序列号,例如 45658 是 2025-01-01,46023 是 2026-01-01;小数部分表示时间,0.5 是中午 12 点。在 Excel 日期序号转换工具中输入序列号或日期即可互转,旧版 Mac 文件选 1904 系统。
在 Excel 或 WPS 里,单元格格式被改成“常规”或“数值”后,日期会变成一个五位数;从系统导出的 CSV、接口返回的数据里也常见这样的数字。这是 Excel 内部保存日期的方式:日期序列号。Excel 日期序号转换 可以把序列号和日期互相换算。
序列号的原理
- 整数部分:表示日期。1900 日期系统中,1 表示 1900-01-01,之后每过一天加 1;
- 小数部分:表示一天中的时间,0.5 是 12:00,0.75 是 18:00;
- 示例:45658 是 2025-01-01,46023 是 2026-01-01(中间正好 365 天),45658.75 是 2025-01-01 18:00。
操作步骤
- 输入序列号:打开 Excel 日期序号转换,在“序列号”中填写数字,例如 46023。
- 或输入日期:也可以在“或日期”中填写日期,反向得到序列号。
- 选择日期系统:默认“1900(Windows/默认)”;来自旧版 Mac Excel 的文件选“1904(旧版 Mac)”。
- 查看结果:工具显示对应的日期时间和星期。

1900 和 1904 两种日期系统
| 系统 | 起点 | 46023 对应日期 | 使用场景 |
|---|---|---|---|
| 1900 | 1900-01-01 为 1 | 2026-01-01 | Windows Excel、WPS,默认 |
| 1904 | 1904-01-01 为 0 | 2030-01-02 | 早期 Mac 版 Excel |
两个系统相差 1,462 天。如果把一个表格里的日期复制到另一个表格后全部差了 4 年零 1 天,通常就是日期系统不一致。
为什么有个不存在的 1900-02-29
早期 Excel 为了兼容 Lotus 1-2-3,把 1900 年当作闰年(实际不是),所以序列号 60 对应一个不存在的 1900-02-29。工具对 60 之前的序列号和日期做了修正,并把 60 标注为虚构日期。日常使用的近现代日期不受影响。
在 Excel 里直接修复
选中这些数字,把单元格格式改为“日期”即可显示为日期;用公式时可以写 =TEXT(A1,"yyyy-mm-dd")。Excel 转 JSON 时日期的处理见 Excel 与 JSON 互转,Unix 时间戳的换算见 Unix 时间戳。
常见问题
Excel 里的 46023 是哪一天?
在默认的 1900 日期系统中,46023 是 2026 年 1 月 1 日(星期四);在 1904 系统中是 2030 年 1 月 2 日。
Excel 日期为什么变成了数字?
Excel 用序列号保存日期,单元格格式变成“常规”或“数值”时就显示为数字。把格式改回“日期”即可恢复。
序列号的小数部分是什么?
小数部分表示一天中的时间,例如 .5 是中午 12 点,.25 是早上 6 点。
换算结果会受电脑时区影响吗?
不会。工具按 UTC 或纯日期计算,不受设备时区和夏令时影响。