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

结果:

相关推荐
谢尔登5 分钟前
Webpack 和 Vite 的区别
前端·webpack·node.js
谢尔登6 分钟前
【Webpack】Tree Shaking
前端·webpack·node.js
拉玛干21 分钟前
社团周报系统可行性研究-web后端框架对比-springboot,django,gin
数据库·python·spring·golang
过期的H2O222 分钟前
【H2O2|全栈】关于CSS(4)CSS基础(四)
前端·css
Linux猿24 分钟前
828华为云征文 | 云服务器Flexus X实例:one-api 部署,支持众多大模型
服务器·大模型·llm·华为云·flexus云服务器x实例·华为云服务器·one-api
纳尼亚awsl35 分钟前
无限滚动组件封装(vue+vant)
前端·javascript·vue.js
八了个戒41 分钟前
【TypeScript入坑】TypeScript 的复杂类型「Interface 接口、class类、Enum枚举、Generics泛型、类型断言」
开发语言·前端·javascript·面试·typescript
西瓜本瓜@43 分钟前
React + React Image支持图像的各种转换,如圆形、模糊等效果吗?
前端·react.js·前端框架
黄毛火烧雪下44 分钟前
React 的 useEffect 钩子,执行一些异步操作来加载基本信息
前端·chrome·react.js
蓝莓味柯基1 小时前
React——点击事件函数调用问题
前端·javascript·react.js