目录

一、Time模块介绍

二、Time常用方法

1.time.time()

2.time.localtime([sec])

3.time.gmtime([sec])

4.time.ctime([sec])

5.time.asctime([tuple])

6.time.mktime(tuple)

7.time.strftime(format [,tuple])

8.time.strptime(str,format)

9.time.sleep(sec)

总结


一、Time模块介绍

Python的Time库可以进行时间相关的处理,如访问当前日期和时间,输出不同格式的时间以及等待指定的时间等。下面本文对常用的Time方法进行介绍。

二、Time常用方法

1.time.time()

time.time()会返回当前时间的时间戳,时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。注意time.time()的括号内没有参数,下面是代码举例:

>>> import time
>>> time.time() #返回当前时间戳
1663950612.3896797

2.time.localtime([sec])

time.localtime([sec])可以将时间戳的秒数转化为时间元组格式,时间元组是另一种表示时间的方式,其格式为(tm_year,tm_mon,tm_mday,tm_hour,tm_min, tm_sec,tm_wday,tm_yday,tm_isdst),下面是每个元素的含义

tm_year:         年

tm_mon:         月,范围为[1,12]

tm_mday:       一个月的第几天,范围为[1,31]

tm_hour:         小时,范围为[0,23]

tm_min:          分,   范围为[0,59]

tm_sec:          秒,范围为[0,59]

tm_wday:        一周中的第几天,范围是[0,6],周一为0

tm_yday:         一年中的第几天,范围是[1,366]

tm_isdat:          1代表夏令时

time.localtime()如果括号内不加参数,表示将当前时间转换为时间元组。如果要访问时间元组中的某项,如tm_year,可以用time.localtime().tm_year。下面是代码举例:

>>> time.localtime() #返回当前时间的时间元组
time.struct_time(tm_year=2022, tm_mon=9, tm_mday=24, tm_hour=0, tm_min=48, tm_sec=28, tm_wday=5, tm_yday=267, tm_isdst=0)
>>> time.localtime(time.time()-24*60*60) #返回当前时间前一天的时间元组
time.struct_time(tm_year=2022, tm_mon=9, tm_mday=23, tm_hour=0, tm_min=49, tm_sec=13, tm_wday=4, tm_yday=266, tm_isdst=0)
>>> time.localtime().tm_year  #调用tm_year
2022

3.time.gmtime([sec])

time.gmtime()和time.localtime()的功能类似,不同的是time.gmtime()返回的是UTC时间(0时区)的时间元组,而time.locatime()返回的是本地的时间元组,如北京时间。下面是代码举例,请注意例子中2个方法返回值的不同。

>>> time.gmtime() #返回0时区的时间元组
time.struct_time(tm_year=2022, tm_mon=9, tm_mday=23, tm_hour=17, tm_min=3, tm_sec=44, tm_wday=4, tm_yday=266, tm_isdst=0)
>>> time.localtime() #返回本地的时间元组,日期和时间不一样
time.struct_time(tm_year=2022, tm_mon=9, tm_mday=24, tm_hour=1, tm_min=3, tm_sec=50, tm_wday=5, tm_yday=267, tm_isdst=0)

4.time.ctime([sec])

time.ctime([sec])可以将时间戳的秒数转换字符串的时间格式。字符串是另外一种表示时间的方法,也是更方便我们理解的时间格式,例如'Sat Jun 06 16:26:11 1998' 。注意到此为止我们已经介绍了3种时间的格式,分别为时间戳,时间元组和时间字符串,这3种格式大家要牢记于心。如果time.ctime()括号内不加参数,默认返回当前时间的时间字符串。下面是代码举例:

>>> time.ctime() #返回当前时间字符串
'Sat Sep 24 00:55:07 2022'
>>> time.ctime(time.time()-24*60*60) #返回当前时间前一天的时间字符串
'Fri Sep 23 00:55:36 2022'

5.time.asctime([tuple])

time.asctime([tuple])可以将时间元组转换成字符串的时间格式,如果括号内不给参数,则默认返回当前时间的字符串,相当于time.asctime(time.localtime())。下面是代码举例:

>>> time.asctime() #返回当前时间字符串
'Sat Sep 24 01:09:14 2022'
>>> time.asctime(time.localtime())  #返回当前时间字符串        
'Sat Sep 24 01:09:49 2022'
>>> time.asctime((1,1,1,1,1,1,1,1,1)) #给定元组,返回时间字符串
'Tue Jan  1 01:01:01 1'

6.time.mktime(tuple)

time.mktime([tuple])可以将时间元组转换成时间戳的秒数,注意该方法括号内必须要有时间元组参数。下面是代码举例:

>>> time.mktime(time.localtime()) #转换时间元组到时间戳
1663953237.0

7.time.strftime(format [,tuple])

time.strftime()可以将时间元组定制化输出到时间字符串,其中的时间字符串可以定制格。其格式控制符如下:

格式控制符含义
%Y 四位数的年份,取值范围为0001~9999,如1900
%m月份(01~12),例如10
%d月中的一天(01~31)例如:25
%B 本地完整的月份名称,比如January
%b 本地简化的月份名称,比如Jan
%a  本地简化的周日期,Mon~Sun,例如Wed
%A 本地完整周日期,”Monday~Sunday,例如Wednesday
%H 24小时制小时数(00~23),例如:12
%M  分钟数(00~59),例如26
%S秒(00~59),例如26
%l  12小时制小时数(01~12),例如:7
%p上下午,取值为AM或PM

以上表格信息出自文章https://blog.csdn.net/weixin_59448049/article/details/122790431

下面是代码举例:

>>> time.strftime("%H:%M:%S",time.localtime()) #返回当前时间的字符串
'01:41:38'
>>> time.strftime("%Y-%m-%d %p %H:%M:%S",time.localtime()) #返回当前日期和时间的字符串
'2022-09-24 AM 01:42:10'

8.time.strptime(str,format)

time.strptime()可以将字符串时间按照一定时间格式解析为时间元组。这里需要着重和time.strftime()进行区分,因为这2个方法的名字只有1个字母不一样。我们可以用一个简单的方法进行区分:time.strftime()中的f代表format,可以记成str format time(字符串格式的时间) ;time.strptime()的p代表parse,可以记为str parse time(字符串解析成时间)。下面是本方法的代码举例:

>>> time.strptime('2011-09-11 08:40:22',"%Y-%m-%d %H:%M:%S")    
time.struct_time(tm_year=2011, tm_mon=9, tm_mday=11, tm_hour=8, tm_min=40, tm_sec=22, tm_wday=6, tm_yday=254, tm_isdst=-1)

9.time.sleep(sec)

time.sleep(sec)可以让程序等待sec的秒数,括号内可以是int或者float的数。下面是例子:

>>> time.sleep(1) #等待1s
>>> time.sleep(0.5)  #等待0.5s


总结

总的来说time模块中时间可以有3种格式:时间戳,时间元组和时间字符串,其中时间字符串可以自行定制格式。time模块的方法大部分是针对这几种时间格式进行输出,处理和转化。以上就是本文的所有内容,如果对您有帮助,记得点赞收藏哈!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐