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

Python 3.X中将每日00:00:00转换为epoch时间报错求助

解决Python 3.X中转换当日00:00:00为Epoch时间的问题

咱们先拆解下你代码里的问题:你先用strftime()把datetime对象转成了字符串today_morning,之后又试图对这个字符串调用strftime()——但字符串类型根本没有这个方法,这就是为什么会抛出AttributeError: 'str' object has no attribute 'strftime'的原因。

在Python 3.X里,咱们可以直接基于datetime对象来构造当日0点的时间,再转成Epoch时间,给你几种靠谱的方案:

方案一:直接构造当日0点的datetime对象

这是最直观的写法,提取当前日期的年、月、日,构造出0点的datetime对象,再用timestamp()方法转成Epoch时间(Python 3.3及以上版本支持):

import datetime

today = datetime.datetime.now()
# 构造当日00:00:00的datetime对象
today_midnight = datetime.datetime(today.year, today.month, today.day)
# 转换为Epoch时间并取整
epoch = int(today_midnight.timestamp())
print(epoch)

方案二:用datetime.combine组合日期和时间

这种写法更贴合Python的风格,把当日的日期对象和最小时间(也就是00:00:00)组合起来:

import datetime

# 获取当日的date对象
today_date = datetime.date.today()
# 组合日期和0点时间
today_midnight = datetime.datetime.combine(today_date, datetime.time.min)
epoch = int(today_midnight.timestamp())
print(epoch)

方案三:处理时区(如果需要UTC时间)

如果你的业务需要基于UTC的当日0点,而非本地时间,可以加上时区信息(需要先安装pytz库:pip install pytz):

import datetime
import pytz

# 获取UTC时间下的当前时间
utc_now = datetime.datetime.now(pytz.utc)
# 构造UTC当日0点的时间对象
utc_midnight = datetime.datetime(utc_now.year, utc_now.month, utc_now.day, tzinfo=pytz.utc)
epoch = int(utc_midnight.timestamp())
print(epoch)

这几种方法都避开了你之前的字符串操作误区,直接基于datetime对象处理,既清晰又不容易出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:10:33