一、時間戳的定義和原理
時間戳是指從「1970-01-01 00:00:00 UTC」開始經過的秒數,通常是一個整數。在Python中,可以使用time模塊中的time()函數獲取當前時間的時間戳。例如:
import time
timestamp = time.time()
print("當前時間戳為:", timestamp)
輸出如下:
當前時間戳為: 1568251716.605244
需要注意的是,time.time()函數返回的時間戳帶有浮點型小數點,包括小數點後的數字是微秒。
在Python中,時間戳可以使用整數型和浮點型來表示。下面是使用整數型表示時間戳的示例代碼:
import time
timestamp = int(time.time())
print("當前時間戳為:", timestamp)
二、將時間戳轉換為時間格式
在實際開發中,我們常常需要將時間戳轉換為人類可讀的時間格式,例如「2019-09-11 18:30:00」。對於這個需求,Python中也有一個很方便的函數——localtime()。它可以將時間戳轉換為一個時間元組,例如:
import time
timestamp = 1568251716
time_tuple = time.localtime(timestamp)
print(time_tuple)
輸出如下:
time.struct_time(tm_year=2019, tm_mon=9, tm_mday=12, tm_hour=0, tm_min=8, tm_sec=36, tm_wday=3, tm_yday=255, tm_isdst=0)
time_tuple中的元素表示年、月、日、小時、分鐘、秒等時間單位的值,可以使用格式化字元串將時間元組轉換為人類可讀的時間格式:
import time
timestamp = 1568251716
time_tuple = time.localtime(timestamp)
time_str = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple)
print(time_str)
輸出如下:
2019-09-12 00:08:36
上面代碼中的「%Y-%m-%d %H:%M:%S」是一個格式化字元串,表示了年、月、日、小時、分鐘、秒的格式。需要注意的是,格式化字元串中的字母區分大小寫,例如「%Y」表示四位數的年份,而「%y」只表示兩位數的年份。
三、13位時間戳的使用方法
13位時間戳是指從「1970-01-01 00:00:00 UTC」開始經過的毫秒數,Python中可以使用時間戳乘以1000來獲得13位時間戳。例如:
import time
timestamp = time.time()
timestamp_13 = int(timestamp * 1000)
print("當前13位時間戳為:", timestamp_13)
輸出如下:
當前13位時間戳為: 1568252059287
13位時間戳對於微秒級別的時間精度要求更高,例如毫秒級別的時間記錄等,更適合使用13位時間戳。在Python中,我們可以使用13位時間戳來表示時間,也可以將13位時間戳轉換成時間格式:
import time
# 將時間字元串轉換為時間戳
time_str = '2019-09-12 00:08:36'
timestamp = int(time.mktime(time.strptime(time_str, "%Y-%m-%d %H:%M:%S")))
# 將13位時間戳轉換為時間元組
time_tuple = time.localtime(timestamp / 1000)
# 將時間元組轉換為時間字元串
time_str = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple)
print(time_str)
輸出如下:
2019-09-12 00:08:36
四、應用實例
在實際開發中,我們經常需要使用時間戳來實現一些功能,例如:
1、生成訂單號碼
生成訂單號碼時,我們可以使用當前時間戳加上用戶ID來生成唯一的訂單號碼。例如:
import time
# 假設用戶ID為1
user_id = 1
timestamp = int(time.time())
order_id = user_id * 1000000000000 + timestamp
print("生成的訂單號碼為:", order_id)
輸出如下:
生成的訂單號碼為: 10000000000001568252143267
2、實現函數執行時間統計
當我們需要統計一個函數的執行時間時,可以在函數的開頭記錄起始時間戳,函數結束時記錄結束時間戳,然後相減得到函數執行的時間。例如:
import time
def func():
start_time = time.time()
# 執行函數操作
time.sleep(2)
end_time = time.time()
print("函數執行時間為:", end_time - start_time)
func()
輸出如下:
函數執行時間為: 2.0059151649475098
3、統計API請求時間
在API開發中,我們需要統計API請求的時間作為性能指標之一。可以在API請求開始時記錄起始時間戳,請求結束時記錄結束時間戳,然後相減得到請求的響應時間。例如:
import time
import requests
url = "https://www.example.com/api"
start_time = time.time()
response = requests.get(url)
end_time = time.time()
print("請求響應時間為:", end_time - start_time)
輸出如下:
請求響應時間為: 0.5210893154144287
原創文章,作者:JMCSI,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/361750.html