目录
一、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)
总结
Python的Time库可以进行时间相关的处理,如访问当前日期和时间,输出不同格式的时间以及等待指定的时间等。下面本文对常用的Time方法进行介绍。
time.time()会返回当前时间的时间戳,时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。注意time.time()的括号内没有参数,下面是代码举例:
>>> import time
>>> time.time() #返回当前时间戳
1663950612.3896797
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
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)
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'
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'
time.mktime([tuple])可以将时间元组转换成时间戳的秒数,注意该方法括号内必须要有时间元组参数。下面是代码举例:
>>> time.mktime(time.localtime()) #转换时间元组到时间戳
1663953237.0
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'
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)
time.sleep(sec)可以让程序等待sec的秒数,括号内可以是int或者float的数。下面是例子:
>>> time.sleep(1) #等待1s
>>> time.sleep(0.5) #等待0.5s
总的来说time模块中时间可以有3种格式:时间戳,时间元组和时间字符串,其中时间字符串可以自行定制格式。time模块的方法大部分是针对这几种时间格式进行输出,处理和转化。以上就是本文的所有内容,如果对您有帮助,记得点赞收藏哈!