python基础(time时间模块)

time模块

import time
模块time包含用于获取当前时间、操作时间和日期、从字符串中读取日期、将日期格式化为字符串的函数。日期可表示为实数(从“新纪元”1月1日0时起过去的秒数。“新纪元”是一个随平台而异的年份,在UNIX中为1970年),也可表示为包含9个整数的元组。下表解释了这些整数。例如,元组(2008, 1, 21, 12, 2, 56, 0, 21, 0)表示2008年1月21日12时2分56秒。这一天是星期一,2008年的第21天(不考虑夏令时)。

                                                                          模块time中一些重要的函数
                                                           函 数                                                        描 述
                                                   asctime([tuple])                                将时间元组转换为字符串
                                                   localtime([secs])                      将秒数转换为表示当地时间的日期元组
                                                    mktime(tuple)                                将时间元组转换为当地时间
                                                     sleep(secs)                                  休眠(什么都不做)secs秒
                                               strptime(string[, format])                         将字符串转换为时间元组
                                                          time()                           当前时间(从新纪元开始后的秒数,以UTC为准)

1.时间戳

时间戳是一种用于表示时间的方式。从1970年1月1日0时0分0秒0毫秒开始到指定时间的秒数。世间戳也叫做unix时间戳,1970年1月1日成为unix元年。 作用:是为了方便时间的统一运算。 1.从1970年1月1日开始计算。 2.能够使用到2038年的某一天 3.如果使用太远的未来或者1970年以前的时间可能出现异常

2.UTC时间

UTC时间又称之为世界协调时间。特指格林尼治天文台所在位置的时间也叫做格林尼治时间。 中国的时区是东八区,和世界协调时间差了8个小时,多个八个小时

3.夏令时

夏令时就是通过在夏季将时间调快一小时,来提醒大家早睡早起身体好,节省蜡烛! 每天的时钟变成了25个小时,注意本质还是24个小时

4.时间元组struct_time

时间元组就是一个用于表示时间格式的元组数据而已,他是time模块操作时间的主要方式。

(tm_year=2017, tm_mon=7, tm_mday=4, tm_hour=9, tm_min=4, tm_sec=21, tm_wday=1, tm_yday=185, tm_isdst=0)

格式:(年,月,日,时,分,秒,周几,一年中的第几天,是否是夏令时)

                                                                             Python日期元组中的字段
                                                        索 引                            字 段                           值
                                                         0                                    年                   如2000、2001等
                                                         1                                    月                        范围1~12 
                                                         2                                    日                        范围1~31 
                                                         3                                    时                        范围0~23 

                                                         4                                    分                        范围0~59 
                                                         5                                    秒                        范围0~61 
                                                         6                                   星期           范围0~6,其中0表示星期一
                                                         7                                  儒略日                  范围1~366 
                                                         8                                  夏令时                    0、1或-1

秒的取值范围为0~61,这考虑到了闰一秒和闰两秒的情况。夏令时数字是一个布尔值(True或False),但如果你使用-1,那么mktime[将时间元组转换为时间戳(从新纪元开始后的秒数)的函数]可能得到正确的值。下列表描述了模块time中一些最重要的函数。

2)时间模块的值

1.timezone

获取当前时区与格林尼治所在时区的相差的秒数(推荐)

2.altzone

获取当前时区与格林尼治所在时区的相差的秒数,在有夏令时的情况下

3.daylight

检测是否是夏令时的状态 0 夏令时 非0就不是

3)时间模块的函数

  • 1.asctime()

功能:返回一个正常的可读的时间字符串

格式:time.asctime(时间元组)

返回值:时间字符串

a = time.asctime(a)

接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。

  • 2.localtime()

功能:获取当前时间元组

格式1:time.localtime()

返回值:本地时间元组

格式2:time.localtime(时间戳)

返回值:指定时间戳的本地时间元组

接收时间戳(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)。

a = time.localtime()     #输出时间元组struct_time

  • 3.gmtime()

功能:获取当前UTC时间元组

格式1:time.gmtime()

返回值:当前UTC时间元组

格式2:time.gmtime(时间戳)

返回值:指定时间戳的UTC时间元组

  • 4.ctime()

功能:获取本地时间的字符串格式

格式1: time.ctime()

返回值:时间格式字符串 相当于 asctime(localtime())

格式2: time.ctime(时间戳)

返回值:时间格式字符串 相当于asctime(localtime(时间戳))

b = time.ctime()    #输出 Tue Feb 17 10:00:18 2013

  • 5.mktime()

功能:使用时间元组制作时间戳

格式:time.mktime(时间元组)

返回值:时间戳

注意:按照本地时间来进行计算,如果想按照UTC时间计算,则是calendar.timegm()

import time

t = (2009, 2, 17, 17, 3, 38, 1, 48, 0)

secs = time.mktime( t )

time.mktime(t) #输出 1234915418.000000

  • 6.clock()

功能:获取CPU时间,用于计算代码执行时间

格式:time.clock()

返回值:浮点数时间戳

import time

def procedure():

     time.sleep(2.5)

t0 = time.clock() # measure process time

procedure()

print time.clock() - t0, "seconds process time"

0.0 seconds process time

  • 7.perf_counter()

功能:获取CPU时间用于计算时间差

格式:time.perf_counter()

返回值:浮点数时间戳

主要用于计算程序执行时间,开始获取一次,程序执行完毕在获取一次,相减获得执行总时间,仅py3.3以上

  • 8.sleep()

功能:程序睡眠,使得程序在此处等待指定的时间

格式:time.sleep(时间秒数)

返回值:无

sleep让程序停留一段时间,一般用在循环里面,如果每一次循环需要cpu执行大量的操作的话那么对cpu的压力是非常大的,为了减少cpu的压力,可以让cpu休息个一段时间,就可以用sleep

for i in range(10):

     time.sleep(1)

     print(i)

  • 9.time()

功能:获取当前本地的时间戳

格式:time.time()

返回值:浮点数时间戳

time用于计算一个代码块的执行时间

start_time = time.time()

for i in range(10000):

     print(i)

end_time = time.time()

print(end_time-start_time)

  • 10.strftime()

功能:格式化输出时间字符串(str foramt time)

格式:time.strftime('字符串格式'[,时间元组])

返回值:格式化之后的哦字符串

格式          含义                     备注

%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 的相应符

%S       秒(01 - 61) 

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

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

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

%X       本地相应时间

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

%Y       完整的年份

%z        用 +HHMM 或 -HHMM 表示距离格林威治的时区偏移(H 代表十进制的小时数,M 代表十进制的分钟数)

%%       %号本身

a = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())

例:打印前一天的时间格式 2018-11-14 11:28:50

a = time.time()-24*60*60

a = time.localtime(a)

a = time.strftime('%Y-%m-%d %H:%M:%S',a)

  • 11.strptime()

功能:解析时间字符串成一个元组,strftime的逆向操作(str parse time)

格式:time.strptime('时间字符串','时间字符串格式')

返回值:时间元组

a = time.strptime(time.localtime(), '%Y-%m-%d %H:%M:%S')

你可能感兴趣的:(python基础(二))