一,time标准库
(一)time标准库的调用
time库是Python中处理时间的标准库。
调用方法:
import time
time.<b>()
(二)三种时间表示方法
time模块中时间表现的格式主要有三种:时间戳、元组(struct_time)、格式化的时间字符串。
- (1)时间戳(timestamp) :timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
- (2)format time 格式化时间字符串,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。

- (3)struct_time时间元组,共有九个元素。

(三)time标准库的三类主要函数
- (1)时间获取:time() . ctime() . gmtime()
- time():获取当前计算机内部时间,返回浮点数
>>> time.time() 1524146321.7763612- ctime():以易读方式获得当前时间,返回字符串
>>> time.ctime() 'Thu Apr 19 21:59:34 2018' #星期四 2018-4-19 21:59:34- gmtime():获取当前时间,返回计算机可处理的时间格式, 以UTC的时间计
>>> time.gmtime() time.struct_time(tm_year=2018, tm_mon=4, tm_mday=19, tm_hour=14, tm_min=1, tm_sec=8, tm_wday=3, tm_yday=109, tm_isdst=0) - (2)时间格式化:strftime() . strptime()
- strftime(tpl,ts):tpl是格式化模板字符串,用来定义输出效果,ts是时间变量
>>> time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()) '2018-04-20 10:34:57'- strptime(str,tpl):str是字符串形式的时间值,tpl是格式化模板字符串,定义输出效果
>>> time.strptime('2018-4-19 22:14:15','%Y-%m-%d %H:%M:%S') time.struct_time(tm_year=2018, tm_mon=4, tm_mday=19, tm_hour=22, tm_min=14, tm_sec=15, tm_wday=3, tm_yday=109, tm_isdst=-1) - (3)程序计时:sleep() . perf-counter()
- sleep(s):休眠时间,以秒为单位,可以是浮点数,即等待s秒
- perf_counter():返回一个CPU级别的精确时间计数,单位为秒,通过连续求差值可获得程序执行时间
>>> start=time.perf_counter() >>> end=time.perf_counter() >>> end-start 10.702251718395534
二,datatime标准库
(一)概念及调用
datatime 模块提供一些处理日期,时间和时间间隔的函数。这个模块使用面向对象的交互取代了time模块中整形/元组类型的时间函数。
这个模块包含如下的类型:
- datetime代表了日期和一天的时间
- date代表日期,在1到9999之间
- time 代表时间和独立日期。
- timedelta 代表两个时间或者日期的间隔
- tzinfo 实现时区支持
注意到datetime是模块,datetime模块还包含一个datetime类,通过from datetime import datetime导入的才是datetime这个类。如果仅导入import datetime,则必须引用全名datetime.datetime。datetime.now()返回当前日期和时间,其类型是datetime。
(二)时间获取
- 获取当前日期和时间:
>>>from datetime import datetime
>>>now=datetime.now()
>>>print (now)
>>>print (type(now))
输出结果:
2019-04-03 09:15:01.847715
<class 'datetime.datetime'>
- 获取指定日期和时间 :
>>>from datetime import datetime
>>>old = datetime(2019,4,3,9,26)
>>>print (old)
输出结果:
2019-04-03 09:26:00
(三)时间转换
- datetime转换为timestamp
把一个datetime类型转换为timestamp只需要简单调用timestamp()方法:
>>> from datetime import datetime
>>> dt = datetime(2015, 4, 19, 12, 20) # 用指定日期时间创建datetime
>>> dt.timestamp() # 把datetime转换为timestamp
1429417200.0
注意Python的timestamp是一个浮点数。如果有小数位,小数位表示毫秒数。
- timestamp转换为datetime
要把timestamp转换为datetime,使用datetime提供的fromtimestamp()方法:
>>> from datetime import datetime
>>> t = 1429417200.0
>>> print(datetime.fromtimestamp(t))
2015-04-19 12:20:00
- str转换为datetime
很多时候,用户输入的日期和时间是字符串,要处理日期和时间,首先必须把str转换为datetime。转换方法是通过datetime.strptime()实现,需要一个日期和时间的格式化字符串:
>>> from datetime import datetime
>>> cday = datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')
>>> print(cday)
2015-06-01 18:19:59
- datetime转换为str
如果已经有了datetime对象,要把它格式化为字符串显示给用户,就需要转换为str,转换方法是通过strftime()实现的,同样需要一个日期和时间的格式化字符串:
>>> from datetime import datetime
>>> now = datetime.now()
>>> print(now.strftime('%a, %b %d %H:%M'))
Mon, May 05 16:28
- 本地时间转换为UTC时间
本地时间是指系统设定时区的时间,而UTC时间指UTC+0:00时区的时间。
个datetime类型有一个时区属性tzinfo,但是默认为None,所以无法区分这个datetime到底是哪个时区,除非强行给datetime设置一个时区:
>>> from datetime import datetime, timedelta, timezone
>>> tz_utc_8 = timezone(timedelta(hours=8)) # 创建时区UTC+8:00
>>> now = datetime.now()
>>> now
datetime.datetime(2015, 5, 18, 17, 2, 10, 871012)
- 时区转换
我们可以先通过utcnow()拿到当前的UTC时间,再转换为任意时区的时间。
三,calendar标准库
calendar 模块是python实现的unix 的 cal命令。它可以以标准的模式打印出给定年月的日历。
calendar标准库的调用:
>>> import calendar
主要函数:
- calendar(year,w=2,l=1,c=6):返回 year 年的年历,3 个月一行,间隔距离为 c,每日宽度间隔为 w 字符,每行长度为 21 * w + 18 + 2 * c,l 是每星期行数。
>>> year = calendar.calendar(2019)
>>> print(year)
2019
January February March
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 1 2 3 1 2 3
7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10
14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17
21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24
28 29 30 31 25 26 27 28 25 26 27 28 29 30 31
April May June
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7 1 2 3 4 5 1 2
8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9
15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16
22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23
29 30 27 28 29 30 31 24 25 26 27 28 29 30
July August September
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7 1 2 3 4 1
8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8
15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15
22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22
29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29
30
October November December
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 1 2 3 1
7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8
14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15
21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22
28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29
30 31
- isleap(year):这个是判断是否为闰年,是则返回 true,否则返回 false。
>>> calendar.isleap(2018)
False
>>>calendar.isleap(2020)
True
- leapdays(y1,y2):返回 y1,y2 两年之间的闰年总数,左闭右开区间,在这点上和序列的切片一样。
>>>calendar.leapdays(2000,2021)
6
- month(year,month,w=2,l=1):返回 year 年 mouth 月日历,两行标题,一周一行。每日间隔宽度为 w 字符,每行的长度为 7 * w + 6,l 是每个星期的行数。
print(calendar.month(2019,4))
April 2019
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
- monthrange(year,month):返回一个元组,里面有两个整数。第一个整数代表着该月的第一天是从星期几开始的(从 0 开始,依次为星期一,星期二…直到 6 代表星期日)。第二个整数代表该月一共多少天。
>>>calendar.monthrange(2019,3)
(4, 31)
>>>calendar.monthrange(2019,4)
(0, 30)
- monthcalendar(year,month):返回一个列表,列表内的元素还是列表,每个子列表代表一个星期,都是从星期一到星期日,如果没有本月的日期的话,则为 0。
>>> calendar.monthcalendar(2018,9) [[0, 0, 0, 0, 0, 1, 2], [3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16], [17, 18, 19, 20, 21, 22, 23], [24, 25, 26, 27, 28, 29, 30]] >>> calendar.monthcalendar(2018,8) [[0, 0, 1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26], [27, 28, 29, 30, 31, 0, 0]]
- weekday(year,month,day):输入年月日,返回该日是星期几.
>>>calendar.weekday(2019,4,3)
2
>>>calendar.weekday(2020,4,3)
4
四,random标准库
(一)概念及调用
random库是使用随机数的Python标准库。
调用方式:
import random
(二)主要函数
random库主要分为两类随机函数:基本随机函数和扩展随机函数。
- (1)基本随机函数
- seed(a = None):初始化给定的随机种子,默认为当前系统时间。
>>>random.seed(10) #产生种子10对应的序列- random():生成一个【0.0,1.0)之间的随机小数。
>>> random.random() 0.5714025946899135 - (2)扩展随机函数
- randint(a,b):随机生成一个【a,b】之间的整数。
>>>random.randint(1,10) 7- randrange(m,n[,k]):生成一个【m,n)之间以k为步长的随机整数。
>>> random.randrange(1,10,2) 7- getrandbits(k):生成一个k比特长的随机整数。
>>>random.getrandbits(5) 18- uniform(a,b):生成一个【a,b】之间的随机小数。
>>>random.uniform(0,10) 0.14832446024553692- choice(seq):从序列seq中随机选取一个元素。
- shuffle(seq):将序列seq中元素随机排列,返回打乱后的序列。
借鉴文章:
【优快云博客】(https://blog.youkuaiyun.com/a18353365031/article/details/80011593)
【优快云博客】(https://www.cnblogs.com/jason-lv/p/8260539.html)
【优快云博客】(https://www.cnblogs.com/lichunl/p/9098024.html)
【优快云博客】(http://www.cnblogs.com/zhanhg/p/4396434.html)
【百度】(https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431937554888869fb52b812243dda6103214cd61d0c2000)
[优快云博客】(https://blog.youkuaiyun.com/u013486414/article/details/85417704)
1万+

被折叠的 条评论
为什么被折叠?



