以纪元格式的 utc 格式的今天日期

Today's date in utc formatted in epoch

我需要使用 utc 纪元来匹配正确的 Whosebug API 值并且 API 使用没有时间的日期作为过滤器参数。

查看本页最后的示例:
https://api.stackexchange.com/docs/no-answer-questions#fromdate=2022-05-11&order=desc&sort=creation&filter=default&site=Whosebug&run=true

我尝试通过 .timestamp() 转换:

date_today = datetime.utcnow().date()
date_final = date_today.timestamp()

但是出现了这个错误:

AttributeError: 'datetime.date' object has no attribute 'timestamp'

如果 timestamp 仅适用于带日期和时间的完整值,我应该如何进行?

你需要给它一个时间戳整数。你应该用

来做到这一点
from datetime import datetime, timezone
utc_timestamp = datetime.now(tz=timezone.utc).timestamp()
round(utc_timestamp)

澄清 - 根据 FObersteiner 的评论,

datetime.utcnow() 很危险 timezone-unaware.

对我来说,此函数 returns 结果与实际 UTC 时间相差 14,400 秒,因为它使用的是我本地计算机的本地化时区(东部夏令时)。

例如,运行这个:

from datetime import datetime, timezone

utc_now_stamp = round(datetime.utcnow().timestamp())
datetime_now_stamp = round(datetime.now(tz=timezone.utc).timestamp())

utc_now_stamp - datetime_now_stamp

产量相差 14400。避免使用 utcnow().