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

如何在Python中将今日日期减X天后转换为Unix时间戳?

Python实现今日日期减X天后转Unix时间戳

直接给出对应你PowerShell逻辑的Python实现代码:

from datetime import datetime, timedelta

# 定义要减去的天数,对应PowerShell中的$age
days_to_subtract = 5

# 获取当前时间,减去指定天数后转为UTC时区
target_datetime = datetime.now() - timedelta(days=days_to_subtract)
target_datetime_utc = target_datetime.astimezone(datetime.timezone.utc)

# 转换为秒级Unix时间戳(与PowerShell输出格式一致)
unix_timestamp = int(target_datetime_utc.timestamp())

print(unix_timestamp)

关键逻辑说明

  • 模块导入:必须导入datetime和timedelta,前者负责日期时间处理,后者实现天数偏移计算
  • 日期偏移:datetime.now()获取当前本地时间,通过- timedelta(days=days_to_subtract)完成"今日减X天"的操作,和PowerShell里的.AddDays(-$age)逻辑完全匹配
  • UTC转换:Unix时间戳基于UTC标准,因此需要把本地时间转为UTC时区,对应PowerShell中的.ToUniversalTime()
  • 时间戳生成:用timestamp()方法获取秒级时间戳,转整数去掉小数部分,和PowerShell的+%s输出格式一致

常见问题排查

如果你之前使用timedelta失败,大概率是以下原因:

  • 未单独导入timedelta:要么用from datetime import timedelta,要么写全datetime.timedelta(days=...)
  • 忽略时区转换:直接用本地时间生成的时间戳会因时区差异出现偏差
  • 误用date对象:date.today()是纯日期对象,没有timestamp()方法,需要转为带时区的datetime对象

如果需要基于纯日期(不含时间)计算,可参考以下代码:

from datetime import date, timedelta, datetime

days_to_subtract = 5
target_date = date.today() - timedelta(days=days_to_subtract)
# 将纯日期转为UTC时区的0点datetime对象
target_datetime_utc = datetime(target_date.year, target_date.month, target_date.day, tzinfo=datetime.timezone.utc)
unix_timestamp = int(target_datetime_utc.timestamp())

print(unix_timestamp)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 12:40:32