返回 导航

Python / AI

hangge.com

Python - time时间模块使用详解(获取当前时间、时间格式化、休眠等)

作者:hangge | 2022-05-23 08:21
    使用 time 模块可以获取当前时间,或者进行字符串与时间格式的相互转换,还能实现休眠一段时间的功能。下面通过样例进行演示。

1,获取当前时间戳

time.time() 可以获取当前时间戳,其表示 1970 纪元后经过的浮点秒数:
import time #导入时间模块 
print(time.time()) #返回当前时间戳(1970纪元后经过的浮点秒数)

2,获取时间元组(struct_time)

(1)time.localtime() 可以获取当前时间的时间元组:
时间元组内各个属性值如下:
  • tm_year:年(如 20002022 等)
  • 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~60 表示周一)
  • tm_yday:儒略日(1366
  • tm_isdst:夏令时(01 -1
  • tm_zone:时区(时区名称的缩写)
  • tm_gmtoffUTC 东偏(以秒为单位)
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)

回到顶部