关于python:在python中构造时间戳参数的方法

42次阅读

共计 991 个字符,预计需要花费 3 分钟才能阅读完成。

  1. 目标 & 思路
    本次要结构的工夫戳,次要有 2 个用处:

headers 中须要传以后工夫对应的 13 位(毫秒级)工夫戳
查问获取某一时间段内的数据(如 30 天前~以后工夫)

接下来要做的工作:

获取以后日期,如 2021-12-16,定为完结工夫
设置工夫偏移量,获取 30 天前对应的日期,定为开始工夫
将开始工夫与完结工夫转换为工夫戳

  1. 一个简略易懂的例子
    依照下面的思路,工夫戳参数创立过程如下

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

正文完
 0