Python语言模块:time模块
小标 2019-01-17 来源 : 阅读 1067 评论 0

摘要:本文主要向大家介绍了Python语言模块:time模块,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

本文主要向大家介绍了Python语言模块:time模块,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

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)

时间元组的格式说明:

(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    时区的名字(如果不存在为空字符)    

%%    ‘%’字符    

备注:

“%p”只有与“%I”配合使用才有效果。

文档中强调确实是0 - 61,而不是59,闰年秒占两秒(汗一个)。

当使用strptime()函数时,只有当在这年中的周数和天数被确定的时候%U和%W才会被计算。

一些例子:


    1、当时时间的前三天

#方法一:时间戳上加减一天的时间间隔: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、给定元组格式转换时间戳

a = (2018, 1, 16, 4, 22, 0, 1, 16, 0)

print(time.mktime(a))

    3、常用时间格式:

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)

本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程