时间模块

二、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)