1.2.12 python内置模块--time、datetime

时间戳

  • 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

  • 注意:目前Python 3.6中支持的最大的时间戳为32535244799(3001-01-01 15:59:59)

  • Python的time 块下有很多函数可以转换常见日期格式。如函数time.time()用于获取当前时间戳。例如:

>>>import time>>>time.time()

 

struct_time元组

  • struct_time元组共有9组数字处理时间,包括年、月、日、时、分、秒、一年中第几周、一年中第几天、是否为夏令时。

  • Python函数用一个元组装起来的9组数字处理时间,也被称为struct_time元组。

格式化时间

  • 在python语言中,可以使用time模块的strftime()函数来格式化时间。

  • time.strftime(format [, tuple] ):将日期和时间元组转换成一个格式为format的字符串。

  • 可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime()。

  • time.asctime([tuple]):将时间转换成一个24字符的字符串,字符串的格式为"星期 月份 日 时:分:秒 年"。

三者之间的关系

1.2.12 python内置模块--time、datetime_第1张图片

  •  
import time# time模块的方法# time.localtime([secs]):将一个时间戳转换为当前时区的struct_time。secs参数未提供,则以当前时间为准。print(time.localtime())# time.struct_time(tm_year=2020, tm_mon=5, tm_mday=25, tm_hour=13, tm_min=44, tm_sec=0, tm_wday=1, tm_yday=72, tm_isdst=0) # time.gmtime([secs]):和localtime()方法类似,gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time。print(time.gmtime())# time.struct_time(tm_year=2020, tm_mon=5, tm_mday=25, tm_hour=5, tm_min=49, tm_sec=16, tm_wday=1, tm_yday=72, tm_isdst=0) # time.time():返回当前时间的时间戳。print(time.time())# 1520920188.7989295 # time.mktime(t):将一个struct_time转化为时间戳。a = time.localtime()print(time.mktime(a)) # time.sleep(secs):线程推迟指定的时间运行。单位为秒。time.sleep(0.1)print("hello world") # time.asctime([t]):把一个表示时间的元组或者struct_time表示为这种形式:# 'Mon May 25 12:04:38 2020'。如果没有参数,将会将time.localtime()作为参数传入。a = time.localtime()print(time.asctime(a)) # time.ctime([secs]):把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。# 如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。print(time.ctime()) # time.strftime(format[, t]):把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtime()返回)# 转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。print(time.strftime("%Y-%m-%d %X", time.localtime()) )#输出2020-05-25 22:22:13 # time.strptime(string[, format]):把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。print(time.strftime("2020-05-25 23:58:23"))# 2020-05-25 23:58:23

日历模块

  • Calendar模块有很广泛的方法用来处理年历和月历。下面将挑选最常用的方法进行讲解。

  1. calendar.calendar(year,w=2,l=1,c=6)

  • 返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。

  1. calendar.firstweekday( )

  • 返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。

time模块

localtime函数

  • localtime()将以秒为单位的时间转换成本地时间。该函数将返回值是一个元组。

  • time.localtime()的语法格式如下:

  • time.localtime([ sec ])

  • 这里的time指的是time模块,secs是指需要转化的时间。如果没有设置secs参数,则使用当前的时间。

clock函数

  • clock()函数返回目前的CPU时间。返回值为一个浮点数。此时间以秒为单位。

  • time.clock()的语法格式如下:

  • time.clock()

  • 这里的time指的是time模块。该函数没有参数。该函数有两个功能。

  • 第一次调用时,返回程序运行的实际时间。

  • 第二次调用时,返回自第一次调用到这次调用的时间间隔。

gmtime函数

  • localtime()将以秒为单位的时间转换成代表UTC(格林威治时间)的元组。该函数将返回值是一个元组。

  • time.gmtime()的语法格式如下:

  • time.gmtime ([ sec ])

  • 这里的time指的是time模块,secs是指需要转化的时间。如果没有设置secs参数,则使用当前的时间。

mktime函数

  • time.mktime()将time.gmtime()或是time.localtime()函数返回的tuple,转换成以秒为单位的浮点数。该函数执行的操作与time.gmtime()或是time.localtime()函数执行的操作相反。

  • time.mktime()的语法格式如下:

  • time.mktime ([tuple ])

  • 这里的time指的是time模块,tuple是指需要转化的时间。这里的tuple是指结构化的时间或者完整的9位元组元素。如果输入的值不是合法的时间,将会触发OverflowError或ValueError异常。

ctime函数

  • ctime()的作用是把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果不指定参数secs的值或者参数为None,就会默认将time.time()作为参数。ctime()相当于asctime(localtime(secs))。

  • time.ctime()的语法格式如下:

  • time.ctime ([secs])

  • 这里的time指的是time模块,secs是需要转化为字符串时间的秒数。该函数没有任何返回值。

sleep函数

  • sleep()将目前进程置入睡眠状态,睡眠时间为secs秒。

  • sleep()函数的语法格式如下:

  • time.sleep(secs)

  • 这里的time指的是time模块,secs是指需要睡眠的时间。

strptime函数

  • strptime()函数用于根据指定的格式把一个时间字符串转化为struct_time元组。实际上它和strftime()是逆操作。time.strptime()函数的语法格式如下:

  • time.strptime(string [,format])

  • 这里的time指的是time模块,string是指时间字符串,format指格式化字符串。该函数将返回struct_time元组对象。format默认为:"%a %b %d %H:%M:%S %Y"。

date类

  • date类的属性由year年份、month月份及day日期三部分构成。

  • 下面举例说明:

>>> import datetime>>> a = datetime.date.today()   #返回当前本地时间的datetime对象>>> a>>> a.year>>> a.month

 

time类

  • time类由hour小时、minute分钟、second秒、microsecond毫秒和tzinfo时区组成。time类中就有上述五个变量来存储时间的值。

  • 举例说明:

>>> import datetime>>> a = datetime.time(11,10,32,888)>>> a>>> a.hour

 

datetime类

  • datetime类其实是可以看做是date类和time类的合体,其大部分的方法和属性都继承于这二个类,相关的操作方法请参照上面两节的内容。

  • datetime类的属性由year年份、month月份、day日期、hour小时、minute分钟、second秒、microsecond毫秒和tzinfo时区。

timedelta类

  • timedelta类是用来计算二个datetime对象的差值的。

  • 此类中包含如下属性:

  • (1) days:天数。

  • (2) microseconds:微秒数(>=0并且<1秒)。

  • (3) seconds:秒数(>=0并且<1天)。

  • 两个date或datetime对象相减就可以返回一个timedelta对象。


了解更多信息欢迎关注下面公众号,每天更新一篇测试开发或者实用工具文章

你可能感兴趣的:(Python全栈测试开发)