- 目标 & 思路
本次要结构的工夫戳,次要有 2 个用处:
headers 中须要传以后工夫对应的 13 位(毫秒级)工夫戳
查问获取某一时间段内的数据(如 30 天前~以后工夫)
接下来要做的工作:
获取以后日期,如 2021-12-16,定为完结工夫
设置工夫偏移量,获取 30 天前对应的日期,定为开始工夫
将开始工夫与完结工夫转换为工夫戳
- 一个简略易懂的例子
依照下面的思路,工夫戳参数创立过程如下
import datetime
today = datetime.datetime.now() # 获取明天工夫
print("以后日期是:{}".format(today))
end_time = int(round(today.timestamp()*1000)) # 取明天工夫为查问完结工夫,并转为 13 位工夫戳(int()示意保留整数局部)offset = datetime.timedelta(days=-30) # 定义偏移量,即与以后工夫的工夫距离
start_time = int(round((today + offset).timestamp()*1000)) # 定义查问开始工夫 = 以后工夫回退 30 天,转为工夫戳
print("开始日期为:{}, 对应的工夫戳:{}".format(today + offset, start_time))
print("完结日期为:{}, 对应的工夫戳:{}".format(today, end_time))
打印一下后果
以后日期是:2021-12-16 16:50:58.543452
开始日期为:2021-11-16 16:50:58.543452, 对应的工夫戳:1637052658543
完结日期为:2021-12-16 16:50:58.543452, 对应的工夫戳:1639644658543
找一个工夫戳转换网站,看看上述生成的开始日期的工夫戳是否与本来日期对应
能够看进去,大抵是能对应上的(网上很多人应用 round()办法进行了四舍五入,因为我对精度没那么高要求,所以间接取整了)
须要留神的是:timestamp() 办法默认生成的是 10 位 (秒级) 工夫戳,如果要转换为 13 位 (毫秒级) 的话,把后果 *1000 才行
补充 timedelta 的几个参数
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0