前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python模块:time模块

Python模块:time模块

作者头像
py3study
发布2020-01-17 11:30:13
1.9K0
发布2020-01-17 11:30:13
举报
文章被收录于专栏:python3

time模块:

python中处理时间的基础模块,有时间戳,元组,自定义,三种时间表现形式。

python中时间戳的值是以1970年1月1日0点开始计算的,单位是秒。

时间戳:就是两个时间差的数值。

时区:传说中在开发服务器/客户端程序时,时区不一致,会影响 程序的功能。(以后再讨论)

  • time模块方法:

方法名

作用

示例

结果

time()

返回当前时间戳

time.time()

1516071879.0688217

localtime(时间戳)

返回时间戳的当前时区格式化元组时间戳默认当前时间

time.localtime()time.localtime(1516076520.4596064)

与gmtime结果相同

gmtime(时间戳)

返回时时间戳的0时区格式化元组时间戳默认当前时间

time.gmtime()time.gmtime(1516076520.4596064)

time.struct_time(tm_year=2018, tm_mon=1, tm_mday=16, tm_hour=4, tm_min=22, tm_sec=0, tm_wday=1, tm_yday=16, tm_isdst=0)

altzone

返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。

time.altzone

返回一个整数

tzset()

使用环境变量TZ的值,重新初始化时间相关设置。无返回值。

time.tzset()

无返回值,打印时间显示TZ更改后的结果

TZ环境变量的设置

格式:std offset [dst [offset [,start[/time], end[/time]]]]

os.environ['TZ'] = 'EST+05EDT,M4.1.0,M10.5.0'

打印时间05:00:40 02/18/09 AEDT

timezone

属性time.timezone是当地时区(未启动夏令时)距离格林威治的偏移秒数(>0,美洲;<=0大部分欧洲,亚洲,非洲)。

time.timezone

tzname

属性time.tzname包含一对根据情况的不同而不同的字符串,分别是带夏令时的本地时区名称,和不带的。

time.tzname

asctime(时间元组)

返回一个固定格式的时间时间格式是元组格式默认以time.localtime()为参数返回当前时间

time.asctime()或:time.asctime((2018, 1, 16, 4, 22, 0, 1, 16, 0))

Tue Jan 16 07:19:10 2018

ctime(时间戳)

返回一个固定格式的时间,与asctime格式相同时间格式是时间戳默认以time.time()为参数,返回当前时间

time.ctime()或time.ctime(1516076520.4596064)

Tue Jan 16 04:22:00 2018

mktime(时间元组)

返回时间戳,不可缺省参数把时间元组转变成时间戳,精确到秒

mktime((2018, 1, 16, 4, 22, 0, 1, 16, 0))

1516076520.0

clock()

返回当前cpu的时间,用于计算程序的耗时,浮点型;不受time.sleep影响。Windows下,在第一次调用的时候,返回的是程序运行的实际时间;以第二次之后的调用,返回的是自第一次调用后,到这次调用的时间间隔在Unix/Linux下返回的是CPU时间

time.clock()

返回一个时间戳,例如:0.022192

sleep(秒数)

推迟调用线程的运行,可通过参数指定秒数,表示进程挂起的时间。

a = time.time()time.sleep(10)print(time.time()-a)

10.004650831222534因为包含了指今运行时间,所以有小数产生

strftime(格式,时间元组)

把时间元组转变成指定格式格式相当于当格式化字符串的使用时间元组可以是localtime和gmtime提供

time.strftime('哈哈,这是一个时间%Y-%m?随便写点%d',((018, 1, 16, 4, 22, 0, 1, 16, 0))

哈哈,这是一个时间2018-01?随便写点16

strptime(字符串,格式)

根据指定的格式把一个时间字符串解析为时间元组。通常把字符串里指定位置的值用%替代掉

time.strptime('哈哈,这是一个时间2018-01?随便写点16','哈哈,这是一个时间%Y-%m?随便写点%d')

time.struct_time(tm_year=2018, tm_mon=1, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=16, tm_isdst=-1)

各方法关系图:

time conver.JPG
time conver.JPG
  • 时间元组的格式说明: (2018, 1, 16, 4, 22, 0, 1, 16, 0) time.struct_time(tm_year=2018, tm_mon=1, tm_mday=16, tm_hour=4, tm_min=22, c=0, tm_wday=1, tm_yday=16, tm_isdst=0)

元组序号

struct_time名

说明

对应格式化符号

0

tm_year

2018

tm_year(年)  比如2011

%Y或%y

1

tm_mon

1

tm_mon(月)  1 - 12

%m

2

tm_mday

16

tm_mday(日)  1 - 31

%d

3

tm_hour

4

tm_hour(时)  0 - 23

%H

4

tm_min

22

tm_min(分)  0 - 59

%M

5

c

0

tm_sec(秒)  0 - 61

%S

6

tm_wday

1

tm_wday(weekday)  0 - 6(0表示周日)

%w

7

tm_yday

16

tm_yday(一年中的第几天)  1 - 366

%j

8

tm_isdst

0

tm_isdst(是否是夏令时)  默认为-1

备注:读取某一属性 time.gmtime().tm_year 或 time.gmtime()[0]

  • 格式化符号含义说明

格式

含义

备注

%a

本地(locale)简化星期名称

%A

本地完整星期名称

%b

本地简化月份名称

%B

本地完整月份名称

%c

本地相应的日期和时间表示

%d

一个月中的第几天(01 - 31)

%H

一天中的第几个小时(24小时制,00 - 23)

%I

第几个小时(12小时制,01 - 12)

%j

一年中的第几天(001 - 366)

%m

月份(01 - 12)

%M

分钟数(00 - 59)

%p

本地am或者pm的相应符

1

%S

秒(01 - 61)

2

%U

一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。

3

%w

一个星期中的第几天(0 - 6,0是星期天)

3

%W

和%U基本相同,不同的是%W以星期一为一个星期的开始。

%x

本地相应日期

%X

本地相应时间

%y

去掉世纪的年份(00 - 99)

%Y

完整的年份

%Z

时区的名字(如果不存在为空字符)

%%

‘%’字符

备注:

  1. “%p”只有与“%I”配合使用才有效果。
  2. 文档中强调确实是0 - 61,而不是59,闰年秒占两秒(汗一个)。
  3. 当使用strptime()函数时,只有当在这年中的周数和天数被确定的时候%U和%W才会被计算。
  • 一些例子:

    1、当时时间的前三天

代码语言:javascript
复制
#方法一:时间戳上加减一天的时间间隔:86400秒
import time
print(time.ctime(time.time()-86400*3))

#方法二:把当前时间转换成元组,再转换成列表(可修改),修改后再改回元组
import time
aa = list(time.gmtime())
aa[2] -= 3
aa = tuple(aa)
print(time.asctime(aa))

    2、给定元组格式转换时间戳

代码语言:javascript
复制
a = (2018, 1, 16, 4, 22, 0, 1, 16, 0)
print(time.mktime(a))

    3、常用时间格式:

代码语言:javascript
复制
now_tuple = time.gmtime()
split_1 = time.strftime("%Y/%m/%d %H:%M:%S", now_tuple)
split_2 = time.strftime("%Y-%m-%d %H:%M:%S", now_tuple)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/06/24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档