Python time 模块简述

time 简介

time 是 Python 处理时间的标准库,其提供了三种时间表达形式

  • 时间戳
  • 结构化时间对象
  • 格式化时间字符串

时间戳

获取当前时间戳,计算内部时间,以浮点数形式返回

import time
print(time.time())
#1685243267.1221318

结构化时间对象

time.gmtime()

将纪元以来以秒为为单位表示的时间转换为struct_time标志始终为0的UTC时间,

print(type(time.gmtime())) #<class 'time.struct_time'>
print(time.gmtime()) 
#time.struct_time(tm_year=2023, tm_mon=5, tm_mday=28, tm_hour=3, tm_min=16, tm_sec=35, tm_wday=6, tm_yday=148, tm_isdst=0)

time.gmtime()的返回值可以使用索引或者变量名获取内部数据

print(time.gmtime()[0]) #2023
print(time.gmtime().tm_year)#2023
print(time.gmtime()[1])#5
print(time.gmtime().tm_mon)#5
print(time.gmtime()[2])#28
print(time.gmtime().tm_mday)#28
print(f"今天是{time.gmtime()[0]}-{time.gmtime()[1]}-{time.gmtime()[2]}")#今天是2023-5-28
print(f"今天是{time.gmtime()[0]}的第{time.gmtime()[7]}天了、"
      f"还有{365-time.gmtime()[7]}天就元旦了")#今天是2023的第148天了、还有217天就元旦了

time.localtime()

当地时间

print(time.localtime())
#time.struct_time(tm_year=2023, tm_mon=5, tm_mday=28, tm_hour=11, tm_min=28, tm_sec=31, tm_wday=6, tm_yday=148, tm_isdst=0)

其它用法和gmtime相同

print(time.localtime()[0]) #2023
print(time.localtime().tm_year)#2023
print(time.localtime()[1])#5
print(time.localtime().tm_mon)#5
print(time.localtime()[2])#28
print(time.localtime().tm_mday)#28
print(f"今天是{time.localtime()[0]}-{time.localtime()[1]}-{time.localtime()[2]}")#今天是2023-5-28
print(f"今天是{time.localtime()[0]}的第{time.localtime()[7]}天了、"
      f"还有{365-time.localtime()[7]}天就元旦了")#今天是2023的第148天了、还有217天就元旦了
'''2023
2023
5
5
28
28
今天是2023-5-28
今天是2023的第148天了、还有217天就元旦了 '''

 

格式化字符串

time.ctime()

获取当前时间,返回格式化后的字符串

print(time.ctime())
#Sun May 28 11:35:55 2023

time.asctime([t]) :接收时间元组。通过函数gmtime() 或 localtime() 返回的时间信息,返回一个可读的字符串,

print(time.asctime(time.localtime()))
#Sun May 28 11:38:24 2023
print(time.asctime(time.gmtime()))
#Sun May 28 03:38:24 2023

三种时间形式的互相转换

时间戳转结构化对象

time.gmtime(时间戳)

time.localtime(时间戳)

print(time.localtime())
print(time.localtime(time.time() - 3600))
#UTC 时间
print(time.gmtime())
print(time.gmtime(time.time() - 3600))
time.struct_time(tm_year=2023, tm_mon=5, tm_mday=28, tm_hour=11, tm_min=45, tm_sec=10, tm_wday=6, tm_yday=148, tm_isdst=0)
time.struct_time(tm_year=2023, tm_mon=5, tm_mday=28, tm_hour=10, tm_min=45, tm_sec=10, tm_wday=6, tm_yday=148, tm_isdst=0)
time.struct_time(tm_year=2023, tm_mon=5, tm_mday=28, tm_hour=3, tm_min=45, tm_sec=10, tm_wday=6, tm_yday=148, tm_isdst=0)
time.struct_time(tm_year=2023, tm_mon=5, tm_mday=28, tm_hour=2, tm_min=45, tm_sec=10, tm_wday=6, tm_yday=148, tm_isdst=0)

结构化对象转时间戳

time.mktime(结构化时间对象)

print(time.time())
print(time.mktime(time.localtime()))
1685245781.0376158
1685245781.0

结构化对象转格式化时间字符串

time.strftime(格式化时间对象,time.localtime()/time.gmtime())

print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
print(time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime()))
2023-05-28 11:52:34
2023-05-28 03:52:34

其它函数案例

time.sleep(s)

线程休眠s秒

time1 = time.time()
time.sleep(5)#暂停5秒后继续
time2 = time.time()
print(f"这段代码执行耗时 {round(time2-time1,2)}秒")
#这段代码执行耗时 5.0秒

模拟爬虫点击

import time
import random

sleep_time = random.uniform(1, 5)
time.sleep(sleep_time)
posted @ 2023-06-22 08:14  晓枫的春天  阅读(36)  评论(0编辑  收藏  举报