前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何在python中构造时间戳参数

如何在python中构造时间戳参数

作者头像
冰霜
发布2022-03-19 09:04:29
发布2022-03-19 09:04:29
2.6K00
代码可运行
举报
运行总次数:0
代码可运行

前面有一篇随笔大致描述了如何在jmeter中生成时间戳,这次继续介绍下在用python做接口测试时,如何构造想要的时间戳参数

1. 目的&思路

本次要构造的时间戳,主要有2个用途:

  • headers中需要传当前时间对应的13位(毫秒级)时间戳
  • 查询获取某一时间段内的数据(如30天前~当前时间)

接下来要做的工作:

  1. 获取当前日期,如2020-05-08,定为结束时间
  2. 设置时间偏移量,获取30天前对应的日期,定为开始时间
  3. 将开始时间与结束时间转换为时间戳

python中生成时间戳的话,可以使用time模块直接获取当前日期的时间戳;

但是因为需要进行时间偏移,所以我这次并未使用time模块;

而是先用 datetime 模块获取当前日期;

然后用 datetime 的 timedelta 来获取n天前的日期;

最后再使用 timestamp() 方法将日期转换为时间戳

2. 一个简单易懂的例子

按照上面的思路,时间戳参数创建过程如下

代码语言:javascript
代码运行次数:0
运行
复制
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))

打印结果

找一个时间戳转换网站,看看上述生成的开始日期的时间戳是否与原本日期对应

可以看出来,大致是能对应上的(网上很多人使用round()方法进行了四舍五入,因为我对精度没那么高要求,所以直接取整了)

需要注意的是:timestamp() 方法默认生成的是10位(秒级)时间戳,如果要转换为13位(毫秒级)的话,把结果*1000才行

另外使用timedelta进行时间偏移时,可以根据实际需要指定偏移的天、时、分、秒等,如下

代码语言:javascript
代码运行次数:0
运行
复制
datetime.timedelta(days=10, seconds=0, minutes=10, hours=-10, weeks=1)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 冰霜blog 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 目的&思路
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档