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

如何将Path获取的st_ctime转换为可读的datetime.datetime对象?

解决方案

问题根源

你之前的方法之所以失败,是因为Path.stat().st_ctime返回的是Unix时间戳(浮点数,代表从1970-01-01 UTC到当前时间的秒数,包含小数部分),而str(ctime)会把它转成类似"1699999999.123"的字符串,完全不符合"%a %b %d %H:%M:%S %Y"的日期格式,自然无法被strptime解析。

正确转换方法

直接使用datetime.fromtimestamp()方法,它可以直接将Unix时间戳转换为datetime.datetime对象:

from datetime import datetime
from pathlib import Path

# 获取文件的创建时间戳
ctime = Path("/home/user/mypic.jpg").stat().st_ctime
# 转换为datetime对象
dt_obj = datetime.fromtimestamp(ctime)

# 输出结果,格式类似:2023-11-13 15:30:00.123456
print(dt_obj)

时区处理(可选)

如果需要将时间转换为指定时区的datetime对象(比如UTC或本地时区外的时区),可以结合zoneinfo模块(Python 3.9+内置):

from datetime import datetime
from pathlib import Path
from zoneinfo import ZoneInfo

ctime = Path("/home/user/mypic.jpg").stat().st_ctime

# 转换为UTC时区的datetime对象
dt_utc = datetime.fromtimestamp(ctime, tz=ZoneInfo("UTC"))
# 转换为上海时区的datetime对象
dt_shanghai = datetime.fromtimestamp(ctime, tz=ZoneInfo("Asia/Shanghai"))

print(dt_utc)
print(dt_shanghai)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 17:31:07