zoukankan      html  css  js  c++  java
  • 如何在python中构造时间戳参数

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

    1. 目的&思路

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

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

    接下来要做的工作:

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

    python中生成时间戳的话,可以使用time模块直接获取当前日期的时间戳,但是因为需要进行时间偏移,所以我这次并未使用time模块,而是先用 datetime 模块获取当前日期;然后用 datetime  timedelta 来获取n天前的日期;最后再使用 timestamp() 方法将日期转换为时间戳

    2. 一个简单易懂的例子

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

    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))

    打印一下结果

    当前日期是:2020-05-08 21:03:12.976922
    开始日期为:2020-04-08 21:03:12.976922,对应的时间戳:1586350992977
    结束日期为:2020-05-08 21:03:12.976922,对应的时间戳:1588942992977

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

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

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

    补充timedelta的几个参数
    datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
  • 相关阅读:
    AtCoder Beginner Contest 167
    AtCoder Beginner Contest 166
    AtCoder Beginner Contest 165
    AtCoder Beginner Contest 164
    AtCoder Beginner Contest 163
    AtCoder Beginner Contest 162
    AtCoder Beginner Contest 161
    AtCoder Beginner Contest 160
    AtCoder Beginner Contest 159
    自定义Mybatis自动生成代码规则
  • 原文地址:https://www.cnblogs.com/hanmk/p/12853017.html
Copyright © 2011-2022 走看看