admin管理员组文章数量:1794759
自学Python 46 日期和时间函数(一)
Python 日期和时间函数 之 使用时间模块
文章目录
- Python 日期和时间函数 之 使用时间模块
- 一、使用时间模块
- (1)函数 time.altzone
- (2)函数time.asctime([tupletime])
- (3)函数 time.clock()或者time.perf_counter()
- (4)函数time.ctime([secs])
- (5)函数time.gmtime([secs])
- (6)函数 time.localtime([secs])
- (7)函数time.mktime(tupletime)
- (8)函数time.sleep(secs)
- (9)函数time.strftime(fmt[,tupletime])
- (10)函数time.strptime(srt,fmt=' %a%b%H:%M:%S%Y')
- (11)函数time.time( )
在 Python的内置模块中,提供了大量的日期和时间函数,通过这些函数可以帮助开发者快速实现日期和时间功能。在本节的内容中,将详细讲解使用 Python时间和日期函数的知识。
一、使用时间模块
在 Python程序中,时间Time模块中的常用内置函数如下所示。
(1)函数 time.altzone功能是返回格林威治西部的夏令时地区的的偏移秒数,如果该地区在格林威治东部会返回负值(如西欧,包括英国)。只有对夏令时启用地区才能使用此函数。例如下面在Python的交互式命令行程序中演示了函数altzone()的使用方法:
>>> import time >>> print("time.altzone %d" % time.altzone) time.altzone -32400 (2)函数time.asctime([tupletime])功能是接受时间元组并返回一个可读的形式如为“Wed Jul 27 20:23:46 2022” (2022年7月23日周三20时23分46秒)的24个字符的字符串(是我运行这些代码的日期和时间)。例如下面在Python的交互式命令行程序中演示了函数asctime()的使用方法:
>>> import time >>> t= time . localtime() >>> print ("time.asctime (t):%s " % time.asctime (t)) time.asctime (t):Wed Jul 27 20:23:46 2022 (3)函数 time.clock()或者time.perf_counter()注意: time.clock()在Python3.3废弃,在Python3.8中将被移除,使用时注意自己的版本,可以用time.perf_counter() 以浮点数计算的秒数返回当前的 CPU时间,用来衡量不同程序的耗时,比 time.time()函数更有用。读者需要注意,函数 time.lock()在不同的操作系统中的含义不同。在UNIX系统中,它返回的是“进程时间”,是用秒表示的浮点数(时间戳)。当在Windows系统中第一次调用时,返回的是进程运行的实际时间。而在第二次之后调用的是自第一次调用以后到现在的运行时间。 在第一次调用函数time.clock()的时候,返回的是程序运行的实际时间。第二次之后的调用,返回的是自第一次调用后,到这次调用的时间间隔。在 Win32系统下,这个函数返回的是真实时间(wall time),而在 Unix/Linux下返回的是 CPU 时间。 例如在下面的实例中,在Pycharm中演示了使用函数time.perf_counter()实现时间处理的过程。
import time def procedure(): time.sleep (2.5) #time.clock t0 = time.perf_counter() procedure() print (time.perf_counter() - t0) # time.time t0 = time.time() procedure() print (time.time() -t0)在不同机器的执行效果不同,在我电脑中执行后会输出:
(4)函数time.ctime([secs])其功能相当于asctime(localtime(secs))函数,如果没有参数则相当于asctime()函数。例如下面在Python的交互式命令行程序中演示了函数time.ctime()的使用方法:
>>> import time >>> print("time.ctime() : %s" %time.ctime()) time.ctime() : Wed Jul 27 20:46:41 2022 (5)函数time.gmtime([secs])接收时间戳并返回格林威治天时间下的时间元组t。读者需要注意,t.tm_isdst始终为0。例如下面在Python的交互式命令行程序中演示了函数gmtime()的使用方法:
>>> import time >>> print("gmtime:", time.gmtime(1455508609.34375)) gmtime: time.struct_time(tm_year=2016, tm_mon=2, tm_mday=15, tm_hour=3, tm_min=56, tm_sec=49, tm_wday=0, tm_yday=46, tm_isdst=0) (6)函数 time.localtime([secs])接收时间戳并返回当地时间下的时间元组t (t.tm _isdst可以取0或1,取决于当地当时是不是夏令时)。例如下面在Python的交互式命令行程序中演示了函数localtime()的使用方法:
>>> import time >>> print("localtime():",time.localtime (1455508609.34375)) localtime(): time.struct_time(tm_year=2016, tm_mon=2, tm_mday=15, tm_hour=11, tm_min=56, tm_sec=49, tm_wday=0, tm_yday=46, tm_isdst=0) (7)函数time.mktime(tupletime)接受时间元组并返回时间戳,函数mktime(tupletime)执行与 gmtime(), localtime()相反的操作,能够接收struct_time对象作为参数,返回用秒数来表示时间的浮点数。如果输入的值不是一个合法的时间,将会触发OverflowError 或 ValueError错误。参数tupletim是结构化的时间或者完整的9位元组元素。例如在下面的实例中,在Pycharm中演示了演示了使用函数mktime(tupletime)实现时间操作的过程:
import time t = (2022,7,27,20,59,40,1,48,0) secs = time.mktime(t) print("time.mktime(t): %f" %secs) print("asctime(localtime(secs)): %s" % time.asctime(time.localtime(secs)))执行后会输出:
(8)函数time.sleep(secs)功能是推迟调用线程的运行,参数secs指秒数。例如下面在在Pycharm中演示了函数time.sleep(secs)的使 使用方法:
import time print("Start :%s" %time.ctime) time.sleep(5) print("End: %s" %time.ctime())执行后会输出:
(9)函数time.strftime(fmt[,tupletime])接收时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。例如下面在Python的交互式命令行程序中演示了strftime()函数的使用方法:
>>> import time >>> print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())) 2022-07-27 21:17:41 (10)函数time.strptime(srt,fmt=’ %a%b%H:%M:%S%Y’)根据fmt的格式把一个时间字符申解析为时间元组。例如下面在Python的交互式命令行程序中演示了strptime()函数的使用方法:
>>> import time >>> struat_time = time.strptime("27 Jul 22","%d %b %y") >>> print("返回元组:",struat_time) 返回元组: time.struct_time(tm_year=2022, tm_mon=7, tm_mday=27, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=208, tm_isdst=-1) (11)函数time.time( )返回当前时间的时间戳。例如下面在Python的交互式命令行程序中演示了time()函数的使用方法:
>>> import time >>> print(time.time()) 1658928614.7110431版权声明:本文标题:自学Python 46 日期和时间函数(一) 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686750053a98137.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论