pythontime比較
① python之time模塊
time 模塊常用的與時間相關的類和函數:
time 模塊的 struct_time 類代表一個時間對象,可以通過 索引和屬性名 訪問值。 對應關系如下:
索引 —— 屬性 值
0 —— tm_year(年) 如:1945
1 —— tm_mon(月) 1 ~ 12
2 —— tm_mday(日) 1 ~ 31
3 —— tm_hour(時) 0 ~ 23
4 —— tm_min(分) 0 ~ 59
5 —— tm_sec(秒) 0 ~ 61
6 —— tm_wday(周) 0 ~ 6
7 —— tm_yday(一年內第幾天) 1 ~ 366
8 —— tm_isdst(夏時令) -1、0、1
localtime() 表示當前時間,返回類型為 struct_time 對象 ,示例如下所示:
輸出結果:
time()——返回當前時間的時間戳
gmtime([secs])——將時間戳轉換為格林威治天文時間下的 struct_time,可選參數 secs 表示從 epoch 到現在的秒數,默認為當前時間
localtime([secs])——與 gmtime() 相似,返回當地時間下的 struct_time
mktime(t) localtime() 的反函數
asctime([t]) 接收一個 struct_time 表示的時間,返回形式為:Mon Dec 2 08:53:47 2019 的字元串
ctime([secs]) ctime(secs) 相當於 asctime(localtime(secs))
strftime(format[, t]) 格式化日期,接收一個 struct_time 表示的時間,並返回以可讀字元串表示的當地時間
sleep(secs) 暫停執行調用線程指定的秒數
altzone 本地 DST 時區的偏移量,以 UTC 為單位的秒數
timezone 本地(非 DST)時區的偏移量,UTC 以西的秒數(西歐大部分地區為負,美國為正,英國為零)
tzname 兩個字元串的元組:第一個是本地非 DST 時區的名稱,第二個是本地 DST 時區的名稱
基本使用如下所示:
strftime 函數日期格式化符號說明如下所示:
② python函數深入淺出 16.time.sleep()函數詳解
time.sleep() 函數命名來源於英文單詞time(時間)和sleep(睡眠)。
time 是python帶的非內置庫,使用時需要import,主要用於處理和時間相關的操作。
time.sleep用於給定時間內掛起(等待)當前線程的執行。
time.sleep() 函數的例子:
可以注釋掉time.sleep(2)再運行一次對比一下
可以看到雖然都是列印出一樣的結果,但time.sleep()加入了等待時間
這里還要解釋一下python中線程與進程的區別。
舉個例子,廚房做菜看成是一個進程,那麼這個進程下面就可能有多個人或一個人(cpu基本執行單元,即線程)來執行,多個人可以分別洗菜,刷碗,擺盤等等同時作業,他們又是共享這個廚房的資源的。每個人存在一定的資源競爭關系,比如爐火只有1個。
這里time.sleep是針對線程執行的,也就是其中一個人去sleep睡覺了,不影響其他人的繼續工作。
參數
該函數沒有返回值。
結果類似如下:
可以看到秒數相差了5
無
time.sleep()常用於推遲執行的場景
在python中,與時間相關的模塊有:time,datetime以及calendar
對基礎運行環境有疑問的,推薦參考: python函數深入淺出 0.基礎篇
③ 有人知道在Python中如何判斷時間過去了1秒么有木有這樣的函數如何運用急!!!
利用Python自帶的time模塊,time.time()獲取當前的時間(以秒為單位),利用兩次獲取time.time()的時間差「==1」,即可確定時間過去了1秒。
如要求時間過去1秒後才可以執行後面的代碼有兩種方式:
(1)import time
time_before = time.time()
time_after = time.time()
while time_after - time_before <1:
time_after = time.time()
......................................後續代碼
(2)import time
time.sleep(1) #讓代碼在這里休息1秒鍾生再執行後面的代碼
......................................後續代碼
④ python 怎麼比較兩個datetime
用大於號,小於號
注意到datatime對著兩個運算符重載的很好
⑤ Python中如何用time計算時間差
1
首先我們需要import
datetime,導入日期處理庫
2
然後把日期轉化成datetime標准格式,如下圖所示使用datetime.datetime.strptime方法將字元串格式的時間轉化為標准格式
3
其中"%Y/%m/%d
%H:%M:%S"為time字元串的時間格式
Y為年,m為月,d為天,H為小時,M為分鍾,S為秒,執行轉化結果如下
4
下面如果我們要加的時間是天則如下圖,當前時間加上datetime.timedelta(days=1)。datetime的timedelta方法實現
5
同理如果要加的時間是小時則如下,當前時間加上datetime.timedelta(hour
s=1)
6
同理如果要加的時間是分鍾則如下,當前時間加上datetime.timedelta(minutes=1)
7
如果加的時間是s的話,如下當前時間加上datetime.timedelta(seconds=1)
8
如果是加年的話需要把年數轉化成day再做計算
⑥ python中的time模塊
time模塊是python專門用來處理時間的內建庫。
下面我們來記錄一些基本使用方法。
ps: 用到了一些概念,比如unix時間戳,感興趣的同學自行網路。
下文參考他人博客內容, 傳送門
time.time()函數獲取的是Unix時間戳。
返回的是一個float類型的數值。
在python中的time模塊中定義了一個叫struct_time的元組,是用來構建時間對象的。
struct_time元組共9個元素組成,如下圖:
這個函數可以接受一個unix時間戳,然後轉換為struct_time。
如果不傳入second參數,則會返回當前時間的時間戳的struct_time對象
再試試傳入當前時間的時間戳,是否能得到上面的struct_time呢?
和我們預期的結果一致。
和localtime函數類似,默認情況gmtime函數獲取當前時間的utc時間。
返回當前時間的utc時間的struct_time對象。
也可以傳入任意的unix時間戳,來得到utc時間。
將一個時間戳struct_time對象轉換為時間戳。
傳入一個struct_time對象,返回"Sun Jun 20 23:21:05 1993"這種格式的字元串。不傳參數,返回當前時間的這種格式的字元串。
傳入格式和struct_time,返回按照format格式格式化後的時間字元串。
格式佔位符可以參考下圖:
將字元串時間轉為struct_time,time.strftime()的逆向操作。
⑦ python日期加減比較問題請教
#time模塊實現,也是自帶的
#字元串不好計算~但是時間戳是固定的呀...
#計算結果中,假定今天24日,輸入24,輸出0天,輸入25,輸出-1天
importtime
deff(tm):
stamp=time.mktime(time.strptime(tm,"%Y%m%d"))
diff=int((time.time()-stamp)//86400)
ifdiff<=180:
return{tm:str(diff)}
else:
d={}
whilediff>180:
d[tm]=180
stamp+=180*86400
diff=int((time.time()-stamp)//86400)
#注意這里time.gmtime()返回的是0時區日期,需要處理時區問題
tm=time.strftime("%Y%m%d",time.gmtime(stamp-time.timezone))
else:
d[tm]=str(diff)
returnd
if__name__=='__main__':
tm='20160325'
print(f(tm))
tm='20171015'
print(f(tm))
#結果輸出,注意:字典是沒有固定順序的
'''
{'20160921':180,'20170320':180,'20170916':'38','20160325':180}
{'20171015':'9'}
'''
⑧ 如何在python中比較微秒時間差
python中的最小時間單位是毫秒,沒辦法精確到微秒
用time包的time()函數可以獲得當前計算機的掛鍾時間,利用它可以獲得時間差
import time
time1 = time.time()
#要度量時間的程序
time2 = time.time()
print time2 - time1
⑨ python怎樣比較兩個字元串時間
舉例,一個時間偏移後的比較情況:
1 #-*-coding=utf-8-*-
2 __author__='zhongtang'
3
4 '''
5 時間戳與字元串的互相轉換
6 '''
7
8 import time
9
10 localtime1=time.localtime()
11 time.sleep(5)
12 localtime2=time.localtime(time.time())
13
14 print type(localtime1),localtime1
15 print type(localtime2),localtime2
16
17 gmtime=time.gmtime(time.time())
18 print type(gmtime),gmtime
19
20
21 strtime1='20160518010101'
22 strtime2='20160518020101'
23
24 #字元串變成時間數據結構
25 localtime1=time.strptime(strtime1,'%Y%m%d%H%M%S')
26 localtime2=time.strptime(strtime2,'%Y%m%d%H%M%S')
27
28 print type(localtime1),localtime1
29 print type(localtime2),localtime2
30
31
32 #從時間數據結構轉換成時間戳
33 time1= time.mktime(localtime1)
34 time2= time.mktime(localtime2)
35
36 print type(time1),time1
37 print type(time2),time2
38
39 #時間戳可以直接相減,得到以秒為單位的差額
40 print time2-time1
輸出結果
1 <type 'time.struct_time'> time.struct_time(tm_year=2016, tm_mon=5, tm_mday=19, tm_hour=9, tm_min=9, tm_sec=30, tm_wday=3, tm_yday=140, tm_isdst=0)
2 <type 'time.struct_time'> time.struct_time(tm_year=2016, tm_mon=5, tm_mday=19, tm_hour=9, tm_min=9, tm_sec=35, tm_wday=3, tm_yday=140, tm_isdst=0)
3 <type 'time.struct_time'> time.struct_time(tm_year=2016, tm_mon=5, tm_mday=19, tm_hour=1, tm_min=9, tm_sec=35, tm_wday=3, tm_yday=140, tm_isdst=0)
4 <type 'time.struct_time'> time.struct_time(tm_year=2016, tm_mon=5, tm_mday=18, tm_hour=1, tm_min=1, tm_sec=1, tm_wday=2, tm_yday=139, tm_isdst=-1)
5 <type 'time.struct_time'> time.struct_time(tm_year=2016, tm_mon=5, tm_mday=18, tm_hour=2, tm_min=1, tm_sec=1, tm_wday=2, tm_yday=139, tm_isdst=-1)
6 <type 'float'> 1463504461.0
7 <type 'float'> 1463508061.0
8 3600.0
⑩ Python測量程序運行時間,time.time與time.clock
現象描述:
1、time.clock 在win系統和linux系統下對相同程序的計時結果不一致
2、到底應該用什麼時間計時?為什麼用time.time與time.clock計時會有那麼大的差異
在計算機領域有多種時間。
第一種稱作CPU時間或執行時間,用於測量在執行一個程序時CPU所花費的時間。第二種稱作掛鍾時間,測量執行一個程序時的總時間。掛鍾時間也被稱作流逝時間或運行時間。與CPU時間相比,掛鍾時間通常長些,因為CPU執行測量的程序可能同時還在執行其它程序的指令。
另一個重要概念是所謂的系統時間,由系統時鍾測量。系統時間表示計算機系統時間傳遞的概念。要記住系統時鍾是可以由操作系統修改的,就是修改系統時間。
在Unix系統上,time.time的作用與Windows相同,但time.clock的意義不同。
在Unix系統上,time.clock以秒為單位返回當前處理器時間,例如,執行當前線程所花費的CPU時間。而在Windows上,它是以秒為單位的返回自首次調用該函數以來所流逝的系統時間。
以我遇到的Ubuntu系統上運行time.time和time.clock的例子:
time.time()顯示系統時間過去大概1秒,而time.clock()顯示花費在當前進程上的CPU時間只有於1毫秒。
而win下time.time()和time.clock()顯示系統時間都是大致過去了1秒
在測量程序准確性能時應該使用哪一個呢?
這要視情況而定。如果程序運行的系統能夠提供足夠的資源給程序,例如,一個運行基於Python的web應用程序的web伺服器,則使用time.clock()來測量程序會更有意義,因這個web應用程序可能是伺服器上的主要程序 。如果程序運行的系統上還同時運行著其它大量程序,則使用time.time()進行測量會更有意義。 如果不是這樣,就應該使用基於掛鍾的計時器來測量程序的性能,因為這樣通常能反應程序的環境。
放結論,一般情況下:
1、win用time.clock或time.time
2、linux 下用time.time 或 datetime.datetime.now().timestamp()
【1】(重要)https://blog.csdn.net/ao985438294363006/article/details/101349790 Python測量時間,用time.time還是time.clock