【13】python time時間模塊知識點備查

表示時間的三種形式

# 時間模塊

'''
UTC(世界協調時間):格林尼治天文時間,世界標準時間,在中國來講是UTC+8
DST(夏令時):是一種節約能源而人爲規定時間制度,在夏季調快1個小時



時間的表示形式:
一、時間戳
以整型或浮點型表示時間的一個以秒爲單位的時間間隔。這個時間間隔的基礎值是從1970年1月1日領帶開始算起
二、元組
一種Python的數據結構表示,這個元組有9個整型內容
year
month
day
hours
minutes
seconds
weekday
Julia day
flag (1 或 -1 或0) 0表示正常時間 1 表示DST時間 -1須要判斷

三、格式化字符串
%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 時區的名字(若是不存在爲空字符)
%% ‘%’字符
 
  1 #__author:"吉*佳"
  2 #date: 2018/10/22 0022
  3 #function:
  4 
  5 import time
  6 
  7 # 時間模塊
  8 
  9 '''
 10 UTC(世界協調時間):格林尼治天文時間,世界標準時間,在中國來講是UTC+8
 11 DST(夏令時):是一種節約能源而人爲規定時間制度,在夏季調快1個小時
 12 
 13 
 14 
 15 時間的表示形式:
 16 一、時間戳
 17 以整型或浮點型表示時間的一個以秒爲單位的時間間隔。這個時間間隔的基礎值是從1970年1月1日領帶開始算起
 18 二、元組
 19 一種Python的數據結構表示,這個元組有9個整型內容
 20 year
 21 month
 22 day
 23 hours
 24 minutes
 25 seconds
 26 weekday
 27 Julia day
 28 flag  (1 或 -1 或0) 0表示正常時間   1 表示DST時間  -1須要判斷
 29 
 30 三、格式化字符串
 31 %a  本地(locale)簡化星期名稱
 32 %A  本地完整星期名稱
 33 %b  本地簡化月份名稱
 34 %B  本地完整月份名稱
 35 %c  本地相應的日期和時間表示
 36 %d  一個月中的第幾天(01 - 31)
 37 %H  一天中的第幾個小時(24小時制,00 - 23)
 38 %I  第幾個小時(12小時制,01 - 12)
 39 %j  一年中的第幾天(001 - 366)
 40 %m  月份(01 - 12)
 41 %M  分鐘數(00 - 59)
 42 %p  本地am或者pm的相應符
 43 %S  秒(01 - 61)
 44 %U  一年中的星期數。(00 - 53星期天是一個星期的開始。)第一個星期天以前的全部天數都放在第0周
 45 %w  一個星期中的第幾天(0 - 6,0是星期天)
 46 %W  和%U基本相同,不一樣的是%W以星期一爲一個星期的開始。
 47 %x  本地相應日期
 48 %X  本地相應時間
 49 %y  去掉世紀的年份(00 - 99)
 50 %Y  完整的年份
 51 %Z  時區的名字(若是不存在爲空字符)
 52 %%  ‘%’字符
 53 
 54 2017-07-28 14:49:30
 55 '''
 56 
 57 # 1 返回當前時間的時間戳,浮點數形式,不須要參數
 58 c = time.time()
 59 print(c)
 60 '''
 61 輸出:時間戳
 62 1540214592.0838583
 63 '''
 64 
 65 #將時間戳轉爲UTC時間元組(是世界標準時間,不是北京時間)
 66 t = time.gmtime(c)
 67 print(t)
 68 '''
 69 輸出:世界標準時間
 70 time.struct_time(tm_year=2018, tm_mon=10, tm_mday=22, tm_hour=13, tm_min=23, tm_sec=12, tm_wday=0, tm_yday=295, tm_isdst=0)
 71 
 72 '''
 73 
 74 #將時間戳轉爲本地時間元組
 75 b = time.localtime(c)
 76 print(b)
 77 '''
 78 輸出:
 79 time.struct_time(tm_year=2018, tm_mon=10, tm_mday=22, tm_hour=21, tm_min=23, tm_sec=12, tm_wday=0, tm_yday=295, tm_isdst=0)
 80 '''
 81 
 82 
 83 
 84 #將本地時間元組轉成時間戳
 85 m = time.mktime(b)
 86 print(m)
 87 '''
 88 輸出:
 89 1540216089.0
 90 '''
 91 
 92 
 93 #將時間元組轉成字符串
 94 s = time.asctime(b)
 95 print(s)
 96 '''
 97 輸出:
 98 Mon Oct 22 22:08:17 2018
 99 '''
100 #將時間戳轉爲字符串   time.asctime(time.localtime(time.time()))
101 p = time.ctime(c)
102 print(p)
103 '''
104 輸出:
105 Mon Oct 22 22:08:17 2018
106 '''
107 
108 #將時間元組轉換成給定格式的字符串,參數2爲時間元組,若是沒有參數2,默認轉當前時間
109 q = time.strftime("%Y-%m-%d %H:%M:%S", b)
110 print(q)
111 print(type(q))
112 '''
113 輸出:
114 2018-10-22 22:08:17
115 <class 'str'>
116 '''
117 
118 #將時間字符串轉爲時間元組
119 w = time.strptime(q, "%Y-%m-%d %X")
120 print(w)
121 '''
122 輸出:
123 time.struct_time(tm_year=2018, tm_mon=10, tm_mday=22, tm_hour=22, tm_min=10, tm_sec=58, tm_wday=0, tm_yday=295, tm_isdst=-1)
124 
125 '''
126 
127 
128 #延遲一個時間,整型或者浮點型
129 #time.sleep(4)
130 
131 
132 #返回當前程序的cup執行時間
133 #Unix形同始終返回所有的運行時間
134 #windows從第二次開始,都是以第一個調用此函數的開始間戳做爲基數
135 y1 = time.clock()
136 print("%d" % y1)
137 time.sleep(2)
138 y2 = time.clock()
139 print("%d" % y2)
140 time.sleep(2)
141 y3 = time.clock()
142 print("%d" % y3)
143 
144 '''
145 輸出:
146 0
147 2
148 4
149 
150 '''

總結:

關於三種形式表示時間上的轉換圖windows

 

 評測一個程序花費的時間長度(windows爲例):

# 好比檢測一個程序運行所花的時間大小

time.clock()
sum  = 0
for i in range(100000000):
    sum += i
print(time.clock())

'''
輸出:
23.743988065019252
'''

 

 

# datetime 比time 好了不少,提供了更多的接口,更加直觀和容易調用 import datetime # 主要的方法 模塊中的類 datetime 同時有時間和日期 timedelta 用於計算時間的跨度 tzinfo 時區相關 time 時間 date 日期 
#__author:"吉*佳"
#date: 2018/10/22 0022
#function:

# datetime 比time 好了不少,提供了更多的接口,更加直觀和容易調用

import datetime

# 主要的方法
'''
模塊中的類
datetime         同時有時間和日期
timedelta        用於計算時間的跨度
tzinfo           時區相關
time             時間
date             日期

'''

# 使用:

# 1 獲取當前時間
nowtime=datetime.datetime.now()
print(nowtime)
print(type(nowtime))
'''
輸出:
2018-10-22 22:58:31.973017
<class 'datetime.datetime'>
'''

# 2 獲取指定時間
d2 = datetime.datetime(1994,1,10,10,28,25,111)
print(d2)

'''
輸出:
1994-01-10 10:28:25.000111
'''

# 3 將以上時間(nowtime)轉化爲 字符串
d3 = nowtime.strftime('%y-%m-%d %H:%M:%S')
print(d3)
print(type(d3))

d31 = nowtime.strftime('%Y-%m-%d %H:%M:%S')   #大Y表示四位的年
print(d31)

'''
輸出:
18-10-22 23:04:35
<class 'str'>
2018-10-22 23:05:48
'''

# 4 將字符串 轉化爲 datetime類型的
d4 = datetime.datetime.strptime(d3,'%y-%m-%d %H:%M:%S')
print("d4=",d4)
'''
輸出:
d4= 2018-10-22 23:12:14
'''

# 5 datetime型是能夠作加減運算的
d5 = datetime.datetime(1994,1,10,13,25,48,111)
d6 = datetime.datetime.now()
d= d6-d5
print(d)         #打印出間隔的天數和秒數
print(d.days)    #打印出間隔的天數
print(d.seconds) #打印出出去整數天外的間隔的秒數

print(type(d))     #所屬的類型是
'''
輸出:
9051 days, 9:50:06.403529
9051
35406
<class 'datetime.timedelta'>
'''

 

 

 

#__author:"吉*佳"
#date: 2018/10/22 0022
#function:

import calendar
# 日曆模塊

# 1 返回指定年內某月的日曆信息
print(calendar.month(2018,10))

'''
輸出:
    October 2018
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(2018))
'''
輸出:
                                  2018

      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  7                1  2  3  4                1  2  3  4
 8  9 10 11 12 13 14       5  6  7  8  9 10 11       5  6  7  8  9 10 11
15 16 17 18 19 20 21      12 13 14 15 16 17 18      12 13 14 15 16 17 18
22 23 24 25 26 27 28      19 20 21 22 23 24 25      19 20 21 22 23 24 25
29 30 31                  26 27 28                  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          1  2  3  4  5  6                   1  2  3
 2  3  4  5  6  7  8       7  8  9 10 11 12 13       4  5  6  7  8  9 10
 9 10 11 12 13 14 15      14 15 16 17 18 19 20      11 12 13 14 15 16 17
16 17 18 19 20 21 22      21 22 23 24 25 26 27      18 19 20 21 22 23 24
23 24 25 26 27 28 29      28 29 30 31               25 26 27 28 29 30
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             1  2  3  4  5                      1  2
 2  3  4  5  6  7  8       6  7  8  9 10 11 12       3  4  5  6  7  8  9
 9 10 11 12 13 14 15      13 14 15 16 17 18 19      10 11 12 13 14 15 16
16 17 18 19 20 21 22      20 21 22 23 24 25 26      17 18 19 20 21 22 23
23 24 25 26 27 28 29      27 28 29 30 31            24 25 26 27 28 29 30
30 31

      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  7                1  2  3  4                      1  2
 8  9 10 11 12 13 14       5  6  7  8  9 10 11       3  4  5  6  7  8  9
15 16 17 18 19 20 21      12 13 14 15 16 17 18      10 11 12 13 14 15 16
22 23 24 25 26 27 28      19 20 21 22 23 24 25      17 18 19 20 21 22 23
29 30 31                  26 27 28 29 30            24 25 26 27 28 29 30
                                                    31

'''

# 返回 判斷瑞年與否
print(calendar.isleap(2018))
'''
輸出:
False
'''

# 返回這個月的weekday的第一天和月的天數
print(calendar.monthrange(2018,2))

'''
輸出:
(3, 28)
其中3 表明第一天是從週四開始的,28 表明天數
'''

# 返回某個月以每一週爲元素的列表
print(calendar.monthcalendar(2018,6))
'''
輸出:
[[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, 0]]

'''

 

相關文章
相關標籤/搜索