Python---time库

目录

时间获取

时间格式化

程序计时


time库包含三类函数:

时间获取:time() ctime() gmtime()

时间格式化:strtime() strptime()

程序计时:sleep() perf_counter()

下面逐一介绍:

时间获取

|---------------------|----------------------------------------------------------------|
| 函数 | 描述 |
| time() | 获取当前时间戳(从世界标准时间的1970年1月1日00:00:00开始到当前这一时刻为止的总秒数)即计算机内部时间值,浮点数 |
| time() | >>>time.time() |
| time() | 1516939877 |
| ctime() | 获取当前时间并以易读方式表示,返回字符串 |
| ctime() | >>>time.ctime() |
| ctime() | 'Fri Jan 26 12:11:16 2023' |
| gmtime([secs]) | 获取当前时间,结构化,表示为计算机可处理的时间格式, |
| gmtime([secs]) | >>>time.gmtime() |
| gmtime([secs]) | time.struct_time(tm_year=2023, tm_mon=1, |
| gmtime([secs]) | tm_mday=26, tm_hour=4, tm_min=11, tm_sec=16, |
| gmtime([secs]) | tm_wday=4, tm_yday=26, tm_isdst=0) |
| localtime([secs]) | 功能同上,localtime获取当地的时间,而gmtime获取世界统一时间 |

其中struct_time元组中元素的含义分别为

|----------|--------|------------------|
| 元素 | 含义 | 取值 |
| tm_year | 年 | 4位数字,如2023 |
| tm_mon | 月 | 1~12 |
| tm_mday | 日 | 1~31 |
| tm_hour | 时 | 0~23 |
| tm_min | 分 | 0~59 |
| tm_sec | 秒 | 0~61(60或 61是闰秒) |
| tm_wday | 一周的第几日 | 0~6(0为周一) |
| tm_yday | 一年的第几日 | 1~366(366为儒略历) |
| tm_isdst | 夏令时 | 1:夏令时 |
| tm_isdst | 夏令时 | 0:非夏令时 |
| tm_isdst | 夏令时 | -1:不确定 |

时间格式化

strftime(tpl,ts)

tpl是格式化模板字符串,用来定义输出效果

ts是计算机内部时间类型变量

复制代码
>>>t = time.gmtime()
 >>>time.strftime("%Y-%m-%d %H:%M:%S",t)
 '2023-01-26 12:55:20'

strptime(str,tpl)

str是字符串形式的时间值

tpl是格式化模板字符串,用来定义输入效果

复制代码
>>>timeStr = '2023-01-26 12:55:20'
>>>time.strptime(timeStr, "%Y-%m-%d %H:%M:%S")

#输出结果
 time.struct_time(tm_year=2023, tm_mon=1,   
 tm_mday=26, tm_hour=12, tm_min=55, tm_sec=20,  
 tm_wday=3, tm_yday=26, tm_isdst=-1)

现在总结一下格式化控制符

|--------|----------|-----------------------------|
| 格式化字符串 | 日期/时间说明 | 值范围和实例 |
| %Y | 年份 | 0000~9999,例如:1900 |
| %m | 月份 | 01~12,例如:10 |
| %B | 月份名称 | January~December,例如:April |
| %b | 月份名称缩写 | Jan~Dec,例如:Apr |
| %d | 日期 | 01~31,例如:25 |
| %A | 星期 | Monday~Sunday,例如:Wednesday |
| %a | 星期缩写 | Mon~Sun,例如:Wed |
| %H | 小时(24h制) | 00~23,例如:12 |
| %I | 小时(12h制) | 01~12,例如:7 |
| %p | 上/下午 | AM, PM,例如:PM |
| %M | 分钟 | 00~59,例如:26 |
| %S | 秒 | 00~59,例如:26 |

程序计时

程序计时指的是测量起止动作所经历时间的过程

测量时间:perf_counter()

产生时间:sleep()

perf_counter()

#返回一个CPU级别的精确时间计数值,单位为秒由于这个计数值起点不确定,连续调用差值才有意义

复制代码
 >>>start = time.perf_counter()
 318.66599499718114
 >>>end = time.perf_counter() 
 341.3905185375658
 >>>end - start
 22.724523540384666

sleep(s)

s是休眠时间,单位为秒,可以是浮点数

复制代码
>>>def wait():
        time.sleep(3.3)
>>>wait()   #程序将等待3.3秒后再退出

举例:文本进度条

复制代码
import time
scale = 10
print("------执行开始------")
for i in range(scale+1):
    a = '*' * i
    b = '.' * (scale - i)
    c = (i/scale)*100
    print("{:^3.0f}%[{}->{}]".format(c,a,b))
    time.sleep(0.1)
print("------执行结束------")

结果:

如果想实现单行刷新,只需要加入**"\r",**即打印后光标退回到之前的位置\r

print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='')

复制代码
import time
scale = 50
print("执行开始".center(scale//2, "-"))
start = time.perf_counter()
for i in range(scale+1):
    a = '*' * i
    b = '.' * (scale - i)
    c = (i/scale)*100
    dur = time.perf_counter() - start
    print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='')
    time.sleep(0.1)
print("\n"+"执行结束".center(scale//2,'-'))

结果:

相关推荐
袁煦丞10 分钟前
9.12 Halo的“傻瓜建站魔法”:cpolar内网穿透实验室第637个成功挑战
前端·程序员·远程工作
小李独爱秋11 分钟前
特征值优化:机器学习中的数学基石
人工智能·python·线性代数·机器学习·数学建模
代码的余温20 分钟前
Linux内核调优实战指南
linux·服务器·数据库
TwoAI20 分钟前
Matplotlib:绘制你的第一张折线图与散点图
python·matplotlib
universe_0131 分钟前
day27|前端框架学习
前端·笔记
沙尘暴炒饭33 分钟前
前端vue使用canvas封装图片标注功能,鼠标画矩形框,标注文字 包含下载标注之后的图片
前端·vue.js·计算机外设
is081534 分钟前
NFS 服务器 使用
服务器·网络
摸鱼仙人~40 分钟前
一文详解 Python 密码哈希库 Passlib
开发语言·python·哈希算法
百思可瑞教育1 小时前
Vue中使用keep-alive实现页面前进刷新、后退缓存的完整方案
前端·javascript·vue.js·缓存·uni-app·北京百思可瑞教育
yinuo1 小时前
Uni-App跨端实战:APP的WebView与H5通信全流程解析(03)
前端