【发布时间】:2017-07-08 15:03:22
【问题描述】:
我需要使用包含时间戳的 API 查询以固定时间间隔废弃包含 +/- 24 小时数据的在线数据库。因为我不知道服务器在哪里,所以选择像午夜 UTC 这样简单的东西。
我发现了很多关于 SO 的文档来计算本地区域的 UTC。我实际上是在使用这个协议来获取实际的 UTC 日期:
import datetime
myDate = datetime.datetime.now(datetime.timezone.utc)
print("TZ INFO = ", myDate.tzinfo) # return UTC+00:00
print("DATE ", myDate) # return 2017-07-08 14:14:24.137003+00:00
print("ISO DATE = ", myDate.timestamp()) # return 1499523264.137003
第一个问题,为什么返回的timestamp() 考虑当地时区:1499523264.137003 等于~16h15,所以UTC +2 对应于法国时区。为什么timestamp() 不只返回 UTC + 0 时间戳?如何获得UTC + 0 时间戳?
第二个问题,我尝试生成一个午夜日期来查询 API,所以就像我在 SO 上的许多帖子中看到的那样,我尝试使用 replace() 函数:
myDate = myDate.replace(hour=0, minute=0, second=0,microsecond=0).astimezone(pytz.utc)
print (myDate) # return 2017-07-08 00:00:00+00:00
但是当我尝试 print (myDate.timestamp()) 再次返回 UTC + 2 时间戳时,即 2017 年 7 月 8 日凌晨 2 点。如何轻松获得午夜 UTC + 0 时间戳?
【问题讨论】:
标签: python python-3.x datetime timestamp utc