Python - time时间模块使用详解(获取当前时间、时间格式化、休眠等)
作者:hangge | 2022-05-23 08:21
使用 time 模块可以获取当前时间,或者进行字符串与时间格式的相互转换,还能实现休眠一段时间的功能。下面通过样例进行演示。
(2)time.localtime() 方法也可以将一个时间戳转化成时间元组:
(3)time.gmtime() 和 time.localtime() 的功能很相似,只是遵循的时区标准不相同而已。比如下面样例运行结果可以发现,只有 tm_hour 有所差别。
1,获取当前时间戳
time.time() 可以获取当前时间戳,其表示 1970 纪元后经过的浮点秒数:
import time #导入时间模块 print(time.time()) #返回当前时间戳(1970纪元后经过的浮点秒数)
2,获取时间元组(struct_time)
(1)time.localtime() 可以获取当前时间的时间元组:
时间元组内各个属性值如下:
- tm_year:年(如 2000,2022 等)
- 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)
- tm_isdst:夏令时(0、1 或 -1)
- tm_zone:时区(时区名称的缩写)
- tm_gmtoff:UTC 东偏(以秒为单位)
import time #导入时间模块 localtime = time.localtime() #获取当前时间元组 print("本地时间为:", localtime) print("年:", localtime.tm_year) print("月:", localtime.tm_mon) print("日:", localtime.tm_mday)
(2)time.localtime() 方法也可以将一个时间戳转化成时间元组:
import time #导入时间模块 time1 = time.time() time2 = time1 + 10 localtime1 = time.localtime(time1) localtime2 = time.localtime(time2) print("time1 =", localtime1) print("time2 =", localtime2)
(3)time.gmtime() 和 time.localtime() 的功能很相似,只是遵循的时区标准不相同而已。比如下面样例运行结果可以发现,只有 tm_hour 有所差别。
- time.localtime():转换为当地时间的时间元组
- time.gmtime():转换为 UTC 时间的时间元组
import time #导入时间模块 localtime = time.localtime() #获取当地时间元组 gmtime = time.gmtime() #获取格林威治时间元组 print("本地时间为 :", localtime) #打印本地时间 print("格林威治时间为 :", gmtime) #打印格林威治时间
3,将时间元组转换成时间戳
time.mktime() 方法可以将 struct_time 格式时间转化成时间戳:
import time #导入时间模块 time = time.mktime(time.localtime()) print(time)
4,时间格式化
(1)time.ctime() 方法可以将一个时间戳转化成“Sun Apr 24 17:25:46 2022”的格式:
import time #导入时间模块 time1 = time.ctime() time2 = time.ctime(time.time()) print(time1) print(time2)
(2)time.asctime() 方法可以将一个时间元组转化成“Sun Apr 24 17:25:46 2022”的格式:
import time #导入时间模块 time1 = time.asctime() time2 = time.asctime(time.localtime()) print(time1) print(time2)
(3)我们也可以使用 time.strftime() 方法将一个时间元组转换成自定义的时间格式:
具体的格式化符号如下:
- %a:星期几的简写
- %A:星期几的全称
- %b:月分的简写
- %B:月份的全称
- %c:标准的日期的时间串
- %C:年份的后两位数字
- %d:十进制表示的每月的第几天
- %D:月/天/年
- %e:在两字符域中,十进制表示的每月的第几天
- %F:年-月-日
- %g:年份的后两位数字,使用基于周的年
- %G:年分,使用基于周的年
- %h:简写的月份名
- %H:24小时制的小时
- %I:12小时制的小时
- %j:十进制表示的每年的第几天
- %m:十进制表示的月份
- %M:十时制表示的分钟数
- %n:新行符
- %p:本地的AM或PM的等价显示
- %r:12小时的时间
- %R:显示小时和分钟:hh:mm
- %S:十进制的秒数
- %t:水平制表符
- %T:显示时分秒:hh:mm:ss
- %u:每周的第几天,星期一为第一天:(值从0到6,星期一为0)
- %U:第年的第几周,把星期日做为第一天(值从0到53)
- %V:每年的第几周,使用基于周的年
- %w:十进制表示的星期几(值从0到6,星期天为0)
- %W:每年的第几周,把星期一做为第一天(值从0到53)
- %x:标准的日期串
- %X:标准的时间串
- %y:不带世纪的十进制年份(值从0到99)
- %Y:带世纪部分的十制年份
- %z,%Z:时区名称,如果不能得到时区名称则返回空字符。
- %%:百分号
import time #导入时间模块 time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) print(time)
5,将字符串转换为为时间元组
time.strptime() 方法作用与 time.asctime() 方法相反,可以将“Sun Apr 24 17:25:46 2022”格式的字符串转换成时间元组:
import time #导入时间模块 time = time.strptime('Sun Apr 24 17:25:46 2022') print(time)
6,休眠
time.sleep() 方法可以休眠指定的秒数:
import time #导入时间模块 start = time.time() time.sleep(2.6) end = time.time() print(end - start)
全部评论(0)