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