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

枫铃3年前 (2021-09-30)Python228

1. 目的&思路

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

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

接下来要做的工作:

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

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

2. 一个简单易懂的例子

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

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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)

相关文章

利用python同步windows和linux文件

写python脚本的初衷,每次在windows编辑完文件后,想同步到linux上去,只能够登录服务器,...

爬虫基本原理

爬虫基本原理 一、爬虫是什么? 百度百科和维基百科对网络爬虫的定义:简单来说爬虫就是抓取目标网站内容的工具,一般是根据定义的行...

Django 函数和方法的区别

函数和方法的区别 1、函数要手动传self,方法不用传 2、如果是一个函数,用类名去调用,如果是一个方法...

Django 知识补漏单例模式

单例模式:(说白了就是)创建一个类的实例。在 Python 中,我们可以用多种方法来实现单例模式&#x...

Django基础知识MTV

Django简介 Django是使用Python编写的一个开源Web框架。可以用它来快速搭建一个高性能的网站。 Django也是一个MVC框架。但是在Dj...

Python mysql 索引原理与慢查询优化

一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。