Python time 模块简述

Posted 滴水穿石不是靠力,而是因为不舍昼夜。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

以上是关于Python time 模块简述的主要内容,如果未能解决你的问题,请参考以下文章

Python之模块简述

python re 模块 findall 函数用法简述

python中常用模块总概括以及深浅拷贝简述

python中的time模块

Python模块-time模块

python模块--time模块