1.time模块
方法 | 描述 |
time.time() | 返回当前的时间戳(从1970纪元后经过的浮点秒数) |
time.sleep() | 推迟调用线程的运行,表示进行挂起的时间(CPU不工作) |
time.clock() | 返回CPU执行的时间 |
time.gmtime() | 将一个时间戳转换为UTC时区的struct_time元组 |
time.localtime() | 将时间戳转换为本地时间的struct_time元组 |
time.strftime() | 接收时间元组,并返回以可读字符串表示的当地时间,格式由format决定 |
time.asctime() | 接受时间元组并返回一个可读的形式为"周 月 日 时:分:秒 年")的的字符串 |
time.strptime() | 根据指定的格式把一个时间字符串解析为时间元组 |
time.ctime() | 将一个时间戳转换为转换为time.asctime()的形式 |
time.mktime() | 转换为时间戳返回用描述来表示时间的浮点数 |
1.1 time.time()
返回当前的时间戳(从1970纪元后经过的浮点秒数)
>>> import time
>>> time.time()
1565112079.3377519
1.2 time.sleep()
推迟调用线程的运行,单位(s)表示进行挂起的时间(CPU不工作),在多线程那块用的较多
>>> import time
>>> for i in range(3):
... print("i:>>{}".format(time.ctime(time.time())))
... time.sleep(3)
...
i:>>Wed Aug 7 01:24:20 2019 #可以看到每隔3秒打印输出一个变量
i:>>Wed Aug 7 01:24:23 2019
i:>>Wed Aug 7 01:24:26 2019
1.3 time.clock()
返回CPU执行的时间,不太常用,好像新版已被其他方法取代
>>> time.clock()
0.819719
1.4 time.gmtime()
将一个时间戳转换为UTC时区的struct_time元组
>>> import time
>>> time.gmtime(time.time())
time.struct_time(tm_year=2019, tm_mon=8, tm_mday=6, tm_hour=17, tm_min=29, tm_sec=50, tm_wday=1, tm_yday=218, tm_isdst=0)
>>> time.gmtime() #不加参数好像默认获取当前时间戳
time.struct_time(tm_year=2019, tm_mon=8, tm_mday=6, tm_hour=17, tm_min=29, tm_sec=54, tm_wday=1, tm_yday=218, tm_isdst=0)
1.5 time.localtime()
将时间戳转换为本地时间的struct_time元组,和UTC时间相差八小时
>>> import time
>>> time.localtime()
time.struct_time(tm_year=2019, tm_mon=8, tm_mday=7, tm_hour=1, tm_min=32, tm_sec=8, tm_wday=2, tm_yday=219, tm_isdst=0)
>>> time.localtime(time.time())
time.struct_time(tm_year=2019, tm_mon=8, tm_mday=7, tm_hour=1, tm_min=32, tm_sec=15, tm_wday=2, tm_yday=219, tm_isdst=0)
1.6 time.strftime()
接收时间元组,并返回以可读字符串表示的当地时间,格式由format决定
1. 时间日期格式化符号
- %y:两位数的年份表示(00-99)
- %Y:四位数的年份表示(000-9999)
- %m:月份(01-12)
- %d:月内中的一天(0-31)
- %H:24小时制小时数(0-23)
- %I:12小时制小时数(01-12)
- %M:分钟数(00=59)
- %S:秒(00-59)
- %a:本地简化星期名称
- %A:本地完整星期名称
- %b:本地简化的月份名称
- %B:本地完整的月份名称
- %c:本地相应的日期表示和时间表示
- %j:年内的一天(001-366)
- %p:本地A.M.或P.M.的等价符
- %U:一年中的星期数(00-53)星期天为星期的开始
- %w:星期(0-6),星期天为星期的开始
- %W:一年中的星期数(00-53)星期一为星期的开始
- %x:本地相应的日期表示
- %X:本地相应的时间表示
- %Z:当前时区的名称
- %%:%号本身
>>> import time
>>> time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
'2019-08-07 01:44:52'
1.7 time.strptime()
根据指定的格式把一个时间字符串解析为时间元组
>>> struct_time = time.strptime('2019-08-07 01:48:16', '%Y-%m-%d %H:%M:%S')
>>> struct_time
time.struct_time(tm_year=2019, tm_mon=8, tm_mday=7, tm_hour=1, tm_min=48, tm_sec=16, tm_wday=2, tm_yday=219, tm_isdst=-1)
1.8 time.asctime()
接受时间元组并返回一个可读的形式为"周 月 日 时:分:秒 年")的的字符串
>>> import time
>>> time.asctime(time.localtime())
'Wed Aug 7 01:39:00 2019'
>>> time.asctime((2019, 8, 7, 1, 39, 38, 2, 46, 0))
'Wed Aug 7 01:39:38 2019'
1.9 time.ctime()
将一个时间戳转换为转换为time.asctime()的形式
>>> import time
>>> time.ctime()
'Wed Aug 7 01:39:57 2019'
>>> time.ctime(time.time())
'Wed Aug 7 01:40:00 2019'
1.10 time.mktime()
转换为时间戳返回用描述来表示时间的浮点数
>>> import time
>>> time.mktime(time.localtime())
1565113310.0
>>> time.mktime((2019, 8, 7, 1, 42, 38, 2, 46, 0))
1565113358.0
2. datetime模块
datetime相比time进行了封装,提供了更多的函数,更容易调用。常用的类有
类名 | 描述 |
datetime | 日期时间对象 |
date | 日期对象,由year(年)、month(月)、day(日)三部分组成 |
time | 时间对象,由hour(时)、minute(分)、second(秒)、microsecond(毫秒)、tzinfo五部分组成 |
timedelta | 时间间隔,用于计算时间的跨度 |
tzinfo | 时区信息对象 |
2.1 date类
日期对象,由year(年)、month(月)、day(日)三部分组成
>>> d = datetime.date.today()
>>> d
datetime.date(2019, 8, 7)
>>> d.year #等价于d.__getattribute__('year')
2019
>>> d.month #等价于d.__getattribute__('month')
8
>>> d.day #等价于d.__getattribute__('day')
7
2.2 time类
时间对象,由hour(时)、minute(分)、second(秒)、microsecond(毫秒)、tzinfo五部分组成
>>> d = datetime.time(2, 47, 59, 899)
>>> d
datetime.time(2, 47, 59, 899)
>>> d.hour #等价于d.__getattribute__('hour')
2
>>> d.minute #等价于d.__getattribute__('minute')
47
>>> d.second #等价于d.__getattribute__('second')
59
>>> d.microsecond #等价于d.__getattribute__('microsecond')
899
>>> d.tzinfo #等价于d.__getattribute__('tzinfo')
>>>
2.3 datetime类
日期时间对象,可以看成date类和time类的组合。、
1. datetime.datetime.now(tz=None)
返回当前日期时间的datetime对象。若tz=None,等于datetime.today().若指定tz,则返回带tzinfo的datetime对象
>>> import datetime
>>> d = datetime.datetime.now()
>>> print(d)
2019-08-07 02:11:07.902924
2. datetime.datetime.combine()
将一个date对象和一个time对象合并生成一个datetime对象
>>> import datetime
>>> d = datetime.date(2019, 8, 7)
>>> t = datetime.time(2, 48 , 59, 1234)
>>> datetime.datetime.combine(d, t)
datetime.datetime(2019, 8, 7, 2, 48, 59, 1234)
3. datetime.datetime.today()
返回一个datetime对象
>>> datetime.datetime.today()
datetime.datetime(2019, 8, 7, 2, 14, 47, 946324)
4. datetime.datetime.utcnow()
返回一个tz为None的UTC时间的datetime对象
>>> import datetime
>>> datetime.datetime.utcnow()
datetime.datetime(2019, 8, 6, 18, 16, 56, 634938)
5. datetime.datetime.srptime()
返回一个格式化的datetime对象
>>> import datetime
>>> datetime.datetime.strptime('2019-07-08 02:49:33', '%Y-%m-%d %H:%M:%S')
datetime.datetime(2019, 7, 8, 2, 49, 33)
3. calendar模块
3.1 calendar.calendar()
该方法返回某年的日历
>>> import calendar
>>> calendar.calendar(2019)
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
3.2 calendar.month()
该方法返回某年某月的日历
>>> import calendar
>>> calendar.month(2019, 8)
August 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 31
3.3 calendar.isleap()
该方法用来判断某年是不是闰年
>>> import calendar
>>> calendar.isleap(2019)
False
>>> calendar.isleap(2020)
True
3.4 calendar.timegm()
该方法将一个本地时间的struct_time元组转换为时间戳返回
>>> import time
>>> import calendar
>>> calendar.timegm(time.localtime())
1565143691