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)
  • 相关阅读:
    Gradle学习之基础篇
    springmvc上传文件方法及注意事项
    SpringCloud学习之feign
    SpringCloud学习之eureka集群配置
    SpringMvc+Spring+MyBatis 基于注解整合
    SpringBoot学习之SpringBoot执行器
    SpringBoot跨域问题解决方案
    SpringCloud学习之快速搭建分布式配置
    MySQL-Innodb存储结构
    PG-流复制
  • 原文地址:https://www.cnblogs.com/hanmk/p/12853017.html
Copyright © 2011-2022 走看看