首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Python语法学习记录(12):time模块 程序运行时间计算

  • 25-03-03 18:03
  • 4122
  • 11657
blog.csdn.net

文章目录

  • time模块介绍
  • time.time()获取当前时间戳
    • time模块中的时间元组
    • 获取当前时间
  • 获取格式化的时间
  • 格式化日期
  • time其他函数介绍
  • 计时模块的设计
    • 方法一:
    • 方法二:

time模块介绍

Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。Python 提供了一个time模块用于格式化日期和时间。其中注意的是时间间隔是以秒为单位的浮点小数。

每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。

time.time()获取当前时间戳

返回当前时间的时间戳(1970纪元后经过的浮点秒数)。每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。

import time
print(time.time())
  • 1
  • 2

time模块中的时间元组

很多函数用一个元组装起来的9组数字处理时间:

序号属性字段值
0tm_year4位数年1970-2038
1tm_mon月1 到 12
2tm_mday日1到31
3tm_hour小时0到23
4tm_min分钟0到59
5tm_sec秒0到61 (60或61 是闰秒)
6tm_wday一周的第几日0到6 (0是周一)
7tm_yday一年的第几日1到366 (儒略历)
8tm_isdst夏令时-1, 0, 1, -1是决定是否为夏令时的旗帜

获取当前时间

从返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。

import time
time_struct = time.localtime(time.time())# 从返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。
#输出结果是struct_time
print(time_struct)
print(time_struct.tm_year) 	#4位数年
print(time_struct.tm_mon)     #月 1到12
print(time_struct.tm_mday)    #日 1到31
print(time_struct.tm_hour)	#小时 0到23
print(time_struct.tm_min)	    #分钟 0到59
print(time_struct.tm_sec)	    #秒 0到61 (60或61 是闰秒)
print(time_struct.tm_wday)	#一周的第几日 0到6 (0是周一)
print(time_struct.tm_yday)	#一年的第几日 1到366 (儒略历)
print(time_struct.tm_isdst)	#夏令时 -1, 0, 1, -1是决定是否为夏令时的旗帜
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

[外链图片转存失败(img-efLcqdRK-1562763900852)(https://raw.githubusercontent.com/ZhouziqunZZQZZQ/picBed/master/20190710205221.png)]

获取格式化的时间

你可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime():

import time
print(time.asctime(time.localtime(time.time())))
  • 1
  • 2

格式化日期

我们可以使用 time 模块的 strftime 方法来格式化日期,:

time.strftime(format[, t])
  • 1

eg.

import time
print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) 
# 格式化成Sat Mar 28 22:24:24 2016形式
print (time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())) 
# 将格式字符串转换为时间戳
a = "Sat Mar 28 22:24:24 2016"
print (time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

python中时间日期格式化符号:

  • %y 两位数的年份表示(00-99)
  • %Y 四位数的年份表示(000-9999)
  • %m 月份(01-12)
  • %d 月内中的一天(0-31)
  • %H 24小时制小时数(0-23)
  • %I 12小时制小时数(01-12)
  • %M 分钟数(00=59)
  • %S 秒(00-59)
  • %a 本地简化星期名称
  • %A 本地完整星期名称
  • %b 本地简化的月份名称
  • %B 本地完整的月份名称
  • %c 本地相应的日期表示和时间表示
  • %j 年内的一天(001-366)
  • %p 本地A.M.或P.M.的等价符
  • %U 一年中的星期数(00-53)星期天为星期的开始
  • %w 星期(0-6),星期天为星期的开始
  • %W 一年中的星期数(00-53)星期一为星期的开始
  • %x 本地相应的日期表示
  • %X 本地相应的时间表示
  • %Z 当前时区的名称
  • %% %号本身

time其他函数介绍

Time 模块包含了以下内置函数,既有时间处理的,也有转换时间格式的:

序号函数及描述
1time.altzone 返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。
2[time.asctime(tupletime]) 接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
3time.clock( ) 用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。
4[time.ctime(secs]) 作用相当于asctime(localtime(secs)),未给参数相当于asctime()
5[time.gmtime(secs]) 接收时间戳(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组t。注:t.tm_isdst始终为0
6[time.localtime(secs]) 接收时间戳(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)。
7time.mktime(tupletime) 接受时间元组并返回时间戳(1970纪元后经过的浮点秒数)。
8time.sleep(secs) 推迟调用线程的运行,secs指秒数。
9[time.strftime(fmt,tupletime]) 接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。
10time.strptime(str,fmt=’%a %b %d %H:%M:%S %Y’) 根据fmt的格式把一个时间字符串解析为时间元组。
11time.time( ) 返回当前时间的时间戳(1970纪元后经过的浮点秒数)。
12time.tzset() 根据环境变量TZ重新初始化时间相关设置。

Time模块包含了以下2个非常重要的属性:

序号属性及描述
1time.timezone 属性time.timezone是当地时区(未启动夏令时)距离格林威治的偏移秒数(>0,美洲;<=0大部分欧洲,亚洲,非洲)。
2time.tzname 属性time.tzname包含一对根据情况的不同而不同的字符串,分别是带夏令时的本地时区名称,和不带的。

计时模块的设计

衡量程序的运行时间

方法一:

datetime.datetime.now()获取的是当前日期,在程序执行结束之后,这个方式获得的时间值为程序执行的时间。

import datetime
import time
starttime = datetime.datetime.now()
time.sleep(1.39)
endtime = datetime.datetime.now()
print ((endtime - starttime))

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

方法二:

time.time()获取自纪元以来的当前时间(以秒为单位)。如果系统时钟提供它们,则可能存在秒的分数。所以这个地方返回的是一个浮点型类型。这里获取的也是程序的执行时间。

import time
start = time.time()
time.sleep(1.39)
end = time.time()
print(end-start)
  • 1
  • 2
  • 3
  • 4
  • 5

方法三:

time.process_time()返回程序开始或第一次被调用以来的CPU时间。 这具有与系统记录一样多的精度。返回的也是一个浮点类型。这里获得的是CPU的执行时间。

注:程序执行时间=cpu时间 + io时间 + 休眠或者等待时间

import time
start = time.process_time()
time.sleep(1.39)
end = time.process_time()
print (end-start)
  • 1
  • 2
  • 3
  • 4
  • 5

文章知识点与官方知识档案匹配,可进一步学习相关知识
Python入门技能树基本技能时间日期处理416632 人正在系统学习中
注:本文转载自blog.csdn.net的呆呆象呆呆的文章"https://blog.csdn.net/qq_41554005/article/details/95380420"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top