python學習筆記17(時間模組)
時間模組
時間的表示方式
格林尼治天文時間\世界協調時間(UTC):世界標準時間,北京時間等於UTC+8
夏令時(DST):是一種節約能源而人為規定時間制度,在夏季調快1個小時
時間的表示形式:
1、時間戳
以整型或浮點型表示時間的一個以秒為單位的時間間隔。代表當前時間與1970年1月1日相隔多少秒
2、元組
這個元組有以下9個整型內容
year
month
day
hours
minutes
seconds
weekday
Julia day
flag (1 或 -1 或0) #0代表UTC,1代表DST,-1代表自動判斷
3、格式化字串
%a 本地(locale)簡化星期名稱
%A 本地完整星期名稱
%b 本地簡化月份名稱
%B 本地完整月份名稱
%c 本地相應的日期和時間表示
%d 一個月中的第幾天(01 - 31)
%H 一天中的第幾個小時(24小時制,00 - 23)
%I 第幾個小時(12小時制,01 - 12)
%j 一年中的第幾天(001 - 366)
%m 月份(01 - 12)
%M 分鐘數(00 - 59)
%p 本地am或者pm的相應符
%S 秒(01 - 61)
%U 一年中的星期數。(00 - 53星期天是一個星期的開始。)第一個星期天之前的所有天數都放在第0周
%w 一個星期中的第幾天(0 - 6,0是星期天)
%W 和%U基本相同,不同的是%W以星期一為一個星期的開始。
%x 本地相應日期
%X 本地相應時間
%y 去掉世紀的年份(00 - 99)
%Y 完整的年份
%Z 時區的名字(如果不存在為空字元)
%% ‘%’字元
time模組
import time
返回當前時間的時間戳,浮點數形式,不需要引數
c = time.time()
print(c)
將時間戳轉為UTC時間元組
t = time.gmtime(c)
print(t)
將時間戳轉為本地時間元組
b = time.localtime(c)
print(b)
#將本地時間元組轉成時間戳
m = time.mktime(b)
print(m)
將時間元組轉成字串
s = time.asctime(b)
print(s)
將時間戳轉為字串
p = time.ctime(c) print(p)
將時間元組轉換成給定格式的字串,引數2為時間元組,如果沒有引數2,預設轉當前時間
q = time.strftime("%Y-%m-%d %X", b)
print(q)
print(type(q))
將時間字串轉為時間元組
w = time.strptime(q, "%Y-%m-%d %X")
print(w)
延遲一個時間,整型或者浮點型
#time.sleep(4)
返回當前程式的cup執行時間
#Unix系統始終返回全部的執行時間 #windows從第二次開始,都是以第一個呼叫此函式的開始間戳作為基數 y1 = time.clock() print("%d" % y1) #輸出:0 time.sleep(2) y2 = time.clock() print("%d" % y2) #輸出:2 time.sleep(2) y3 = time.clock() print("%d" % y3) #輸出:4
應用:
#CPU效能測試
import time
time.clock()
sum = 0
for i in range(100000000):
sum += i
print(time.clock()) #輸出:10.298342311553466
datetime模組
datetime比time高階了不少,可以理解為datetime基於time進行了封裝,提供了各位使用的函式,datetime模組的介面更直觀,更容易呼叫
datatime模組中的類:
datetime 同時有時間和日期
timedelta 主要用於計算時間的跨度
tzinfo 時區相關
time 只關注時間
date 只關注日期
示例:
import datetime
#獲取當前時間
d1 = datetime.datetime.now()
print(d1) #輸出:2019-01-05 14:30:02.497453
print(type(d1)) #輸出:<class 'datetime.datetime'>
#獲取指定時間
d2 = datetime.datetime(1999, 10, 1, 10, 28, 25, 123456)
print(d2) #輸出:1999-10-01 10:28:25.123456
#將時間轉為字串
d3 = d1.strftime("%Y-%m-%d %X")
print(d3) #輸出:2019-01-05 14:30:02
print(type(d3)) #輸出:<class 'str'>
#將格式化字串轉為datetime物件
#注意:轉換的格式要與字串一致
d4 = datetime.datetime.strptime(d3, "%Y-%m-%d %X")
print(d4) #輸出:2019-01-05 14:30:02
d5 = datetime.datetime(1999, 10, 1, 10, 28, 25, 123456)
d6 = datetime.datetime.now()
d7 = d6 - d5
print(d7) #輸出:7036 days, 4:01:37.373997
print(type(d7)) #輸出:<class 'datetime.timedelta'>
#間隔的天數
print(d7.days) #輸出:7036
#間隔天數除外的秒數
print(d7.seconds) #輸出:14497
日曆模組
呼叫:
import calendar
返回指定某年某月的日曆
print(calendar.month(2019, 7))
#輸出:
July 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
返回指定年的日曆
print(calendar.calendar(2016))
閏年返回True,否則返回False
print(calendar.isleap(2000))
#輸出:True
返回某個月的weekday的第一天和這個月所有的天數
print(calendar.monthrange(2019, 7))
#輸出:(0, 31)
返回某個月以每一週為元素的列表
print(calendar.monthcalendar(2019,7))
#輸出:[[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, 0, 0]]