python模块——时间模块time详解

python提供了三个与时间有关的标准模块,时间模块 time、基本时间日期模块 datetime 和日历模块 Calendar。本文介绍时间模块time。

time模块

time处理时间的模块,获取时间戳,格式化时间等
时间表现格式:

time模块中,时间表现的格式主要有三种:

  • timestamp时间戳,是指某个时间与1970年1月1日00:00:00的差值,单位为秒,是一个浮点型数值
  • struct_time时间元组,共有九个元素组。
  • format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式,比如Sun Aug 11 15:54:07 2019
(1)时间戳

通过time.time()获得

import time

t1 = time.time()
print(t1)
# 1565513824.45309
(2)格式化时间

通过类似于time.strftime("%Y-%m-%d %H:%M:%S")这样的表达式获得。

import time

t2 = time.strftime('%Y-%m-%d %X')
print(t2)
# 2019-08-11 16:55:46

常用的格式化时间字符

格式含义例子
%a本地(locale)简化星期名称Sun
%A本地完整星期名称Sunday
%b本地简化月份名称Aug
%B本地完整月份名称August
%c本地相应的日期和时间表示Sun Aug 11 16:31:26 2019
%d一个月中的第几天(01 - 31)11 (11日)
%H一天中的第几个小时(24小时制,00 - 23)16(下午4点)
%I第几个小时(12小时制,01 - 12)04 (下午4点)
%j一年中的第几天(001 - 366)223 (2019年的第233天)
%m月份(01 - 12)08(8月)
%M分钟数(00 - 59)34 (34分)
%p本地am或者pm的相应符PM(下午)
%S秒(01 - 61)37(37秒)
%U一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。32(2019年第32 个星期)
%w一个星期中的第几天(0 - 6,0是星期天)0(星期天)
%W和%U基本相同,不同的是%W以星期一为一个星期的开始。31(2019年第31个星期天)
%x本地相应日期08/11/19(2019年8月11日)
%X本地相应时间16:38:57(时间)
%y去掉世纪的年份(00 - 99)19(2019年)
%Y完整的年份2019(2019年)
%Z时区的名字(如果不存在为空字符)
%%‘%’字符
(3)时间元组

结构化时间,或者叫时间元祖, 通过time.localtime()获得,返回一个时间元祖

import time

t3 = time.localtime()
print(t3)
# time.struct_time(tm_year=2019, tm_mon=8, tm_mday=11, tm_hour=17, tm_min=3, tm_sec=34, tm_wday=6, tm_yday=223, tm_isdst=0)

共有9个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime()。下面列出这种方式元组中的几个元素:

序号属性
0tm_year年 (2019)
1tm_mon月 (1 到 12)
2tm_mday日(1 到 31)
3tm_hour时(0 到 23)
4tm_min分(0 到 59)
5tm_sec秒(0 到 61 ,闰年多2秒,60或61 是闰秒)
6tm_wday周一到周日 (0到6,0是周日)
7tm_yday一年中第几天(1-366)
8tm_isdst是否夏令时(1:是;0:不是;-1:未知;默认 -1)
(4)time模块常用的函数

time.time()
该函数返回当前时间的时间戳,也就是距离1970年1月1日00:00:00的差值。

import time
print(time.time())

# 1565515307.2585971

time.localtime()
该函数能将一个时间戳转换成元组的形式,如果没有指定时间戳,默认使用当前时间的时间戳。需要注意的是返回的时间是当地时间。

import time

t = time.time()
t1 = time.localtime(t)
t2 = time.localtime()
t3 = time.gmtime()
print('时间戳转为元组:',t1)
print('当地时间:', t2)
print('UTC时间:', t3)

# 时间戳转为元组: time.struct_time(tm_year=2019, tm_mon=8, tm_mday=11, tm_hour=17, tm_min=19, tm_sec=39, tm_wday=6, tm_yday=223, tm_isdst=0)
# 当地时间: time.struct_time(tm_year=2019, tm_mon=8, tm_mday=11, tm_hour=17, tm_min=19, tm_sec=39, tm_wday=6, tm_yday=223, tm_isdst=0)
# UTC时间: time.struct_time(tm_year=2019, tm_mon=8, tm_mday=11, tm_hour=9, tm_min=19, tm_sec=39, tm_wday=6, tm_yday=223, tm_isdst=0)

time.gmtime()
该函数和localtime()的功能一样,只是它返回的时间是格林威治天文时间(UTC),也就是世界标准时间。中国时间为UTC+8。

time.mktime()
该函数将一个元组转换成时间戳。

import time

t2 = time.mktime(time.localtime())
print(t2)

# 1565515472.0

time.sleep()
该函数能让程序线程暂停休息,单位为秒。

import time

print(time.time())
time.sleep(5)
print('5秒之后的时间为:', time.time())

# 1565515621.4053676
# 5秒之后的时间为: 1565515626.4061983

time.asctime()
该函数将一个元组转换成格式化时间。如果没有传入参数,默认传入time.localtime()。

import time

print(time.asctime((2019, 8, 11, 17, 32, 21, 6, 223, 0)))  # 必须传入9个元素的元组
print(time.asctime())

# Sun Aug 11 17:32:21 2019
# Sun Aug 11 17:36:13 2019

time.strftime()
该函数按照格式化字符把一个元组转换成格式化时间字符串。如果没有传入参数,默认传入time.localtime()。

import time
print(time.strftime("%Y-%m-%d %X", time.localtime()))

# 2019-08-11 17:42:47

time.strptime()
该函数按照格式化字符把一个格式化时间字符串转成元组。

import time

print(time.strptime('2019-8-11 17:46:14', '%Y-%m-%d %X'))
print(time.strptime('Aug 2019', '%b %Y'))

# time.struct_time(tm_year=2019, tm_mon=8, tm_mday=11, tm_hour=17, tm_min=46, tm_sec=14, tm_wday=6, tm_yday=223, tm_isdst=-1)
# time.struct_time(tm_year=2019, tm_mon=8, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=213, tm_isdst=-1)

time模块中常用的函数可以总结成下图,基本上就是三者如何转换:
time模块
参考:https://finthon.com/python-time/

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值