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

如何将Python datetime转换为自定义纪元时间(1899-12-30为起点)

如何将Datetime转换为基于1899年12月30日的天数+时间占比格式

你需要将datetime转换为整数部分为自1899年12月30日以来的天数,小数部分为当日时间占一天比例的数值(例如1900年1月1日中午对应2.5,1900年2月1日下午3点对应33.625),当前使用timestamp()获取1970年纪元秒数的方式不符合需求,以下是正确的实现方法:

实现思路

核心是计算目标日期与基准日期(1899-12-30)的时间差,再将时间差拆解为完整天数加上当日时间的占比:

  • 定义基准日期1899-12-30
  • 计算目标datetime和基准日期的时间差timedelta
  • 最终数值 = 时间差的完整天数 + 时间差的剩余秒数 / 一天总秒数(86400)

完整代码示例

import datetime

datee = "03/11/2005, 23:12"
# 解析字符串为datetime对象
target_date = datetime.datetime.strptime(datee, "%d/%m/%Y, %H:%M")
# 设定基准日期
base_date = datetime.datetime(1899, 12, 30)
# 计算时间差
time_diff = target_date - base_date
# 计算目标格式数值
result = time_diff.days + time_diff.seconds / 86400

print(result)

验证示例

  • 对于1900-01-01 12:00:与基准日相差2天,12小时占一天的0.5,结果为2.5,符合预期
  • 对于1900-02-01 15:00:与基准日相差33天,15小时占一天的0.625,结果为33.625,符合预期

注意事项

如果你的datetime对象包含时区信息,需要确保基准日期也转换为对应时区的时间,避免因时区偏移导致计算误差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 05:00:09