我需要使用包含时间戳的API查询,以固定的时间间隔抓取包含+/- 24h数据的在线数据库。 因为我不知道服务器在哪里,所以选择像Midnigth 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时间戳时,所以print (myDate.timestamp()) 7月8日2AM。 我如何轻松获得午夜UTC + 0时间戳?

===============>>#1 票数:0 已采纳

我建议使用钟摆模块,因为它使时区和日期计算易于执行。

钟摆知道夏令时计划,如此处在伦敦和巴黎所示。 它还可以提供夏时制调整的UTC时间调整。 当您需要对UTC进行调整时,只需将replace方法与UTC结合使用即可。

>>> import pendulum
>>> pendulum.create(2017,7,9,0,0,0,0,'Europe/London')
<Pendulum [2017-07-09T00:00:00+01:00]>
>>> pendulum.create(2017,7,9,0,0,0,0,'Europe/Paris')
<Pendulum [2017-07-09T00:00:00+02:00]>
>>> pendulum.create(2017,7,9,0,0,0,0,'UTC')
<Pendulum [2017-07-09T00:00:00+00:00]>
>>> t = pendulum.create(2017,7,9,0,0,0,0,'UTC')
>>> t.replace(hour=+2)
<Pendulum [2017-07-09T02:00:00+00:00]>

  ask by reyman64 translate from so

未解决问题?本站智能推荐: