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,'-'))

结果:

相关推荐
心满意足的大脸猫1 分钟前
Win11 开启 SSH 服务器与密钥登录配置记录
服务器·microsoft·ssh
在学了加油2 分钟前
Inception v1学习笔记
笔记·python·学习
light blue bird4 分钟前
工序路径主子表单工序组装图表组件
前端·数据库·信息可视化·.net·web端·razor page
Cthy_hy7 分钟前
Python算法竞赛:集合去重+字典映射 核心用法一站式整理
数据结构·python·算法
索西引擎8 分钟前
【langchain 1.0】ChromaDB 原生 API 实战:为 LangChain 向量库打造管理工具集
python·ai·langchain
Sirius.z9 分钟前
第J6周:Inception v1算法实战
python
山上三树9 分钟前
Python 高频报错速查表(开发通用版)
开发语言·python
Wonderful U11 分钟前
AI智能日志异常检测告警平台:告别人工排查,秒级定位线上故障
数据库·人工智能·python·django
utf8mb4安全女神11 分钟前
磁盘管理(交换分区)(MGR分区)(GPT分区)
linux·运维·服务器
MY_TEUCK14 分钟前
【MYTRUCK - AI 应用】MetaGPT 0.8.2 安装与排错完整实录(Python 3.10 + 虚拟环境)
开发语言·人工智能·python·ai