以纪元格式的 utc 格式的今天日期
Today's date in utc formatted in epoch
我需要使用 utc
纪元来匹配正确的 Whosebug API 值并且 API 使用没有时间的日期作为过滤器参数。
我尝试通过 .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()
.
我需要使用 utc
纪元来匹配正确的 Whosebug API 值并且 API 使用没有时间的日期作为过滤器参数。
我尝试通过 .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()
.