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

结果:

相关推荐
pas13626 分钟前
40-mini-vue 实现三种联合类型
前端·javascript·vue.js
小二李32 分钟前
第11章 nestjs服务端开发:登录鉴权
运维·服务器
摇滚侠34 分钟前
2 小时快速入门 ES6 基础视频教程
前端·ecmascript·es6
i建模1 小时前
如何在Arch Linux中重设忘记的root密码
linux·运维·服务器
小鸡吃米…1 小时前
机器学习中的代价函数
人工智能·python·机器学习
珑墨1 小时前
【Turbo】使用介绍
前端
军军君012 小时前
Three.js基础功能学习十三:太阳系实例上
前端·javascript·vue.js·学习·3d·前端框架·three
Li emily2 小时前
如何通过外汇API平台快速实现实时数据接入?
开发语言·python·api·fastapi·美股
m0_561359672 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
Ulyanov2 小时前
顶层设计——单脉冲雷达仿真器的灵魂蓝图
python·算法·pyside·仿真系统·单脉冲