时间模块
二、time模块
(一):time模块中的值:
1、timezone:
语法:time.timezone
功能:获取当前时区和0时区(UTC时区或本初子午线)相差的秒数
1 import time
2
3 print(time.timezone)
4 --->-28800 # 东八区 8 * 3600
2、dstzone:
语法:time.altzone
功能:获取当前时区与0时区(UTC时区或本初子午线)在夏令时下相差的秒数
Windows系统下,与timezone返回值 相差1小时,
Linux系统下,与timezone返回值 相同
1 import time
2
3 print(time.altzone)
4 --->-32400 # Windows下 夏令时,比正常时间多了1小时,东八区 9 * 3600
3、daylight:
语法:time.daylight
功能:检查是否是夏令时
返回值:0代表不是,其他代表是
1 import time
2
3 print(time.daylight)
4 --->0
(二):time中的函数:
1、asctime()
语法:time.asctime(tuple)
功能:将时间元组转换为可读的时间字符串(英文)
返回值:一个英文时间字符串
1 import time
2
3 ttp = (2018, 3, 13, 15, 44, 30, 0, 0, 0)
4 asc = time.asctime(ttp)
5 print(asc)
6 --->Mon Mar 13 15:44:30 2018
2、localtime()
语法:time.localtime() 默认使用当前时间戳
time.localtime(sec) sec:指定时间戳
功能:通过时间戳得到一个时间元组
1 import time
2
3 print(time.localtime())
4 --->time.struct_time(tm_year=2018, tm_mon=3, tm_mday=13, tm_hour=15, tm_min=48, tm_sec=4, tm_wday=1, tm_yday=72, tm_isdst=0)
5 # 获取了本地的时间戳进行转换
6
7 x = 25125421
8 y = time.localtime(x)
9 print(y)
10 --->time.struct_time(tm_year=1970, tm_mon=10, tm_mday=19, tm_hour=3, tm_min=17, tm_sec=1, tm_wday=0, tm_yday=292, tm_isdst=0)
11 # 得到时间元组为 1970年10月19日3点17分1秒,是周一,当年第292天,非夏令时
3、gmtime()
语法:time.gmtime()
time.gmtime(sec)
功能:通过时间戳获取一个UTC时间元组
该函数结果与 localtime()函数结果相差8小时对于东八区
1 import time
2
3 print(time.gmtime())
4 --->time.struct_time(tm_year=2018, tm_mon=3, tm_mday=13, tm_hour=7, tm_min=51, tm_sec=38, tm_wday=1, tm_yday=72, tm_isdst=0)
5 # 当前时间下,格林尼治时间为2018年3月13日7时51分38秒周2,第72天,非夏令时
6
7 x = 25125421
8 y = time.gmtime(x)
9 print(y)
10 --->time.struct_time(tm_year=1970, tm_mon=10, tm_mday=18, tm_hour=19, tm_min=17, tm_sec=1, tm_wday=6, tm_yday=291, tm_isdst=0)
11 # 格林尼治时间为1970年10月18日19时17分1秒周日,第291天,非夏令时
4、ctime()
语法:time.ctime()
time.ctime(sec)
等价于:time.asctime(time.localtime())
功能:通过时间戳获取时间的字符串格式
返回值:可读的英文时间字符串(本地时区的)
1 import time
2
3 print(time.ctime())
4 --->Tue Mar 13 15:56:21 2018
5
6 x = 25125421
7 y = time.ctime(x)
8 print(y)
9 --->Mon Oct 19 03:17:01 1970
5、mktime()
语法:time.mktime(tuple)
功能:使用一个指定时间的时间元组,获取一个浮点时间戳
1 import time
2
3 ttp = (2018, 3, 13, 15, 44, 30, 0, 0, 0)
4 x = time.mktime(ttp)
5 print(x)
6 --->1520927070.0
7 # 距离1970年1月1日0时0分0秒,2018年3月13日15时44分30秒过去了1520927070秒
6、clock()
语法:time.clock()
?????下面例子计算了睡眠时间,待定
获取两次CPU时间,可以用于计算程序的运行时间
//该函数在3.3版本后被移除了
1 import time
2
3 start = time.clock()
4 # 程序暂停5s
5 time.sleep(5)
6 num = [i ** i for i in range(5000)]
7
8 end = time.clock()
9 time = end - start
10 print(time)
11 --->8.39384809435725 # 为什么计算了
7、perf_counter()
语法:time.perf_counter()
功能:获取CPU时间,它包括在睡眠期间和系统范围内流逝的时间
在程序开始&结束各计算一次时间,Python3.3版本以上可用
返回值:浮点时间戳
1 import time
2
3 start = time.perf_counter()
4 # 程序暂停5s
5 time.sleep(5)
6 num = [i ** i for i in range(5000)]
7
8 end = time.perf_counter()
9 time = end - start
10 print(time)
11 --->8.35576635042991
8、sleep()
语法:time.sleep(sec)
功能:程序睡眠
9、time()
语法:time.time()
功能:获取当前本地的时间戳
返回值:浮点时间戳
1 import time
2
3 print(time.time())
4 --->1520930902.2000499
10、strftime()
语法:strftime(format, tuple)
format参数:字符串格式
%a 本地local
%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 的相应符
%S 秒(01~61)
%U 一年中的星期数(00~53)每个周日是一周的开始,第一个周日之前的所有天数都放在第0周
%w 一个星期中的第几天(0~6,0是周日)
%W 用法和%U相同,不同的是 %W是以周一为一周的开始
%X 本地相应时间
%y 去掉世纪的年份(00~99)
%Y 完整的年份
%z 用 +HHMM 或 -HHMM 表示距离格林尼治时区的偏移,H代表十进制的小时数,M代表十进制的分钟数
%% %符号本身
tuple参数:时间元组
功能:格式化输出日期
返回值:字符串时间
import time
ttp = (2018, 3, 13, 17, 4, 28, 0, 0, 0)
print(time.strftime('%Y %m %d %H:%M:%S', ttp))
--->2018 03 13 17:04:28
11、strptime()
语法:time.strptime(string, format)
功能:解析格式化的字符串,即strftime()的反操作
返回值:时间元组,
当不能推断更准确的值时,用于填充任何缺失数据的默认值为 (1900, 1, 1, 0, 0, 0, 0, 1, -1)
1 import time
2
3 print(time.strptime('2018 03 13 17:04:28', '%Y %m %d %H:%M:%S'))
4 --->time.struct_time(tm_year=2018, tm_mon=3, tm_mday=13, tm_hour=17, tm_min=4, tm_sec=28, tm_wday=1, tm_yday=72, tm_isdst=-1)