标准库time、datetime、calendar、random的使用

time库:

将time库的函数大致分为三类:

  1. 时间获取   time(), ctime(),gmtime(),localtime()
  2. 时间格式化  strftime() , strptime()
  3. 程序计时函数  sleep(), perf_counter(), clock()

1、时间获取函数:

time库基于UTC时间,从1970/1/1 0:00:00开始计时,以秒为单位

time.gmtime(0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

time库时间结构:

1.time.time() 获取当前时间戳,即计算机内部时间值,是浮点数类型

2.time.ctime() 获取当前时间并以易读方式表示,返回字符串

3.time.gmtime() 获取当前时间,便是为计算机可处理的时间格式

4.time.localtime()  结果和gmtime()返回结果基本一致

 

 

2、时间格式化函数

strftime()与strptime()的区别主要是格式上的不同

time.strftime(format[,t])

例:
time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()
'2018-01-10 13:10:28'

time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) 
'2018-01-10 21:09:45'
 

time.strptime(string[,format])

例:time.strptime('30 Nov 00', '%d%b%y)

time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)

相同:

时间必须都是字符串形式,如果没有输入时间就按照计算机内部时间输出,支持同样的格式化操作

格式化字符串含义
%a缩写工作日名称
%A整个工作日名称
%b

缩写月份名称

%B完整月份名称
%c语言环境的适当日期和时间表示
%d日,【01,31】
%H

时(24小时制),[00,23]

%l时(12小时制), [01, 12]
%j一年的第几天[000, 366]
%m月为十进制数[01,12]
%M以十进制数分钟[00,59]
%PAM 或 PM
%U年的星期数(星期日为星期的第一天)为十进制数[00,53]。在第一个星期日之前的新的一年的所有天被认为是在第0周
%w工作日为十进制数[0(星期日),6]
%W年的星期数(星期一作为星期的第一天)作为十进制数[00,53]。在第一个星期一之前的新的一年中的所有天被认为是在第0周
%x日期表示
%X时间表示
%Y年份以世纪为十进制数
%y年,无世纪作为十进制数[00,99]
%z指示与+ HHMM或-HHMM形式的UTC / GMT的正或负时差的时区偏移,其中H表示十进制小时数字,M表示十进制分数字[-23:59,+23:59]
%Z时区名称(如果没有时区,则不包含字符)
%%表示  %

3.程序计时函数

1.time.sleep(secs)

根据给定的秒数暂停程序运行,时间不一定完全与输入时间一致,输入参数可以时整数、小数等

2.time.clock()

用以浮点数计算的秒数返回当前的 CPU 时间。用来衡量不同程序的耗时。

3.time.perf_counter()

返回计时器的准确时间(系统的运行时间),包含整个系统的睡眠时间(不包含系统睡眠时间可用process-time())。由于返回值的基准点时未定义的,所以只有连续调用的结果之间的差才是有效的。

 

datetime库:

相比较于time库,datetime库不受平台限制,也更加强大。详情可看官方文档

datetime以格林威治时间为基础,每天由3600*24秒定义。包含两个常量:datetime.MINYEAR, datetime.MAXYEAR,分别等于1,9999,代表datetime表示的最大与最小年份。

datetime库由五个类组成:

datetime.data:   日期表示类,可以表示年月日等;

datetime.time:    时间表示类,表示小时、分钟、秒、毫秒等

datetime.datetime :   日期和时间表示的类,覆盖date和time

datetime.tzinfo:  与时区有关的类

datetime.timedelta:   与时间间隔有关的类

       类比较多可以一次全部引入

创建对象:

datetime.now;datetime.utcnow();datetime.datetime()默认当前时间,也可以用datetime()直接创建一个datetime对象

 >>> from datetime import *
 >>> someday = datetime(2019, 4,8,12,12,12,1)
 >>> someday
 datetime.datetime(2019, 4, 8, 12, 12, 12, 1)

datetime类的常用属性:

属性

描述
someday.min固定返回datetime的最小时间对象
someday.max固定返回datetime的最大时间对象
someday.year返回someday包含的年份
someday.month返回someday包含的月份
someday.day返回someday包含的日期
someday.hour返回someday包含的小时
someday.minute返回someday包含的分钟
someday.second返回someday包含的秒钟
someday.microsecond返回someday包含的微秒值

datetime类常用的格式化方法:

someday.isoformat()         采用ISO 8601 标准时间显示

someday.isoweekday()      根据日期计算星期后返回1~7,对应星期一到星期天

someday.strftime(format)     和time库的一致

 

calendar库

calendar库是与日历有关的库,功能和Unix的cal 软件类似。里面由很多个类,默认一周第一天是星期一,最后一天是星期日,分别是0~6。可以使用setfirstweekday()定义任意一天为第一天。

 

caclendar.calendar类

setfirstweekday(firstweekday):  重置一周的第一天

firstweekday(): 查看第一天是哪一天

isleap(year):判断是否是闰年,是则返回true,反之返回false

leapdays(y1,y2):返回y1 和 y2年份之间的闰年数量

weekday(year, month, day): 查看指定日期为星期几

weekheader(n): 返回包含星期的英文缩写,n代表缩写所占的长度

monthrange(year, month):  返回一个由一个月第一天的星期与当月天数组成的元组

monthcalendar(year, month): 返回一个月中天数列表(不是当前月份的天数为0),按周划分,为一个二维数组。包括月份开始那周的所有日期和月份结束那周的所有日期

prmonth(theyear, themonth, w= 0, l = 0):打印一个月的日历,w指定每个单元格的宽度,默认为0,最小宽度为2,l每列换l行

prcal(year, w = 0, l= 0,c = 6, m = 3):打印一年的日历c表示月之间的间隔,m 表示将12个月分为m列

 

random库:

random基于梅森旋转算法生成伪随机数序列,不适用于随机性要求较高的加密算法,这很不安全。所有函数基于最基本的random.random()函数拓展实现。

梅森算法基于随机种子产生随机序列,随机序列根据随机种子产生,种子相同随机序列中的每一个数都是一致的

常用函数

函数

描述

seed(a = None)

初始化随机数种子默认为当前系统时间

random()生成一个[0.0, 1.0)之间的随机小数
randint(a, b)生成一个[a, b]之间的整数
randrange(start, stop[,step])生成一个[start, stop)之间以step为步长的随机整数
getrandbits(k)生成一个k bits的长度的随机整数
uniform(a,b)生成[a, b]之间的随机小数
choice(seq)从序列类型,例如列表随即返回一个元素
shuffle(seq)将序列类型中的元素随机排列,返回打乱后的序列
sample(pop, k)从pop 类型中随机选取k个元素,以列表类型返回

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值