如何在python中构造想要的时间戳参数
1. 目的&思路
本次要構(gòu)造的時間戳,主要有2個用途:
- headers中需要傳當(dāng)前時間對應(yīng)的13位(毫秒級)時間戳
- 查詢獲取某一時間段內(nèi)的數(shù)據(jù)(如30天前~當(dāng)前時間)
接下來要做的工作:
- 獲取當(dāng)前日期,如2020-05-08,定為結(jié)束時間
- 設(shè)置時間偏移量,獲取30天前對應(yīng)的日期,定為開始時間
- 將開始時間與結(jié)束時間轉(zhuǎn)換為時間戳
python中生成時間戳的話,可以使用time模塊直接獲取當(dāng)前日期的時間戳,但是因為需要進(jìn)行時間偏移,所以我這次并未使用time模塊,而是先用 datetime 模塊獲取當(dāng)前日期;然后用 datetime 的 timedelta 來獲取n天前的日期;最后再使用 timestamp() 方法將日期轉(zhuǎn)換為時間戳
2. 一個簡單易懂的例子
按照上面的思路,時間戳參數(shù)創(chuàng)建過程如下
today = datetime.datetime.now() # 獲取今天時間 print("當(dāng)前日期是:{}".format(today)) end_time = int(round(today.timestamp()*1000)) # 取今天時間為查詢結(jié)束時間,并轉(zhuǎn)為13位時間戳(int()表示保留整數(shù)部分) offset = datetime.timedelta(days=-30) # 定義偏移量,即與當(dāng)前時間的時間間隔 start_time = int(round((today + offset).timestamp()*1000)) # 定義查詢開始時間=當(dāng)前時間回退30天,轉(zhuǎn)為時間戳 #更多Python相關(guān)視頻、資料加群778463939免費獲取 print("開始日期為:{},對應(yīng)的時間戳:{}".format(today + offset, start_time)) print("結(jié)束日期為:{},對應(yīng)的時間戳:{}".format(today, end_time))打印一下結(jié)果
當(dāng)前日期是:2020-05-08 21:03:12.976922 開始日期為:2020-04-08 21:03:12.976922,對應(yīng)的時間戳:1586350992977 結(jié)束日期為:2020-05-08 21:03:12.976922,對應(yīng)的時間戳:1588942992977找一個時間戳轉(zhuǎn)換網(wǎng)站,看看上述生成的開始日期的時間戳是否與原本日期對應(yīng)
可以看出來,大致是能對應(yīng)上的(網(wǎng)上很多人使用round()方法進(jìn)行了四舍五入,因為我對精度沒那么高要求,所以直接取整了)
需要注意的是:timestamp() 方法默認(rèn)生成的是10位(秒級)時間戳,如果要轉(zhuǎn)換為13位(毫秒級)的話,把結(jié)果*1000才行
補(bǔ)充timedelta的幾個參數(shù)
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)結(jié)尾給大家推薦一個非常好的學(xué)習(xí)教程,希望對你學(xué)習(xí)Python有幫助!
Python基礎(chǔ)入門教程推薦:←點擊左邊藍(lán)色文字就可以跳轉(zhuǎn)觀看了
Python爬蟲案例教程推薦:←點擊左邊藍(lán)色文字就可以跳轉(zhuǎn)觀看了
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的如何在python中构造想要的时间戳参数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Python 转化成 PB 格式数据
- 下一篇: python教程:使用生成器重构提取数据