一、时间戳的定义和原理
时间戳是指从“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