日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python的time模块使用

發布時間:2024/3/13 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的time模块使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????????本章介紹python的時間模塊 time的常用函數使用。time、datetime 和 calendar模塊都是python在時間日期方面使用得最多的模塊。而對于 time模塊,用的最多的函數是這5個: time.sleep、time.time()、time.strftime、time.strptime 和 time.perf_counter()?。各種函數大家可以通過更改電腦的時間去測試,親自去實踐會更容易理解。

目錄

1.??time.localtime()

2.??time.ctime()

3.??time.time()

4.??time.strftime()

5.??time.strptime()

6.??time.perf_counter()

7.??time.sleep()

8.??time.gmtime()

9.??time.asctime()

10.? time.mktime()

結尾


1 time.localtime() 獲取本地時間。返回時間元組(按照系統設置的時區獲取)
2 time.ctime() 獲取本地時間(返回字符串,內容不符合中國人習慣)
3√ time.time() 獲取當前時間戳
4√ time.strftime 把時間元組/元組轉換成字符串
5√ time.strptime 把字符串格式轉換成時間元組
6√ time.perf_counter() 用于開始/結束的計時
7√ time.sleep 設置睡眠時間
8 time.gmtime() 獲取經度0°的時間,utc時區,返回時間元組(英國格林尼治時間)
9 time.asctime 獲取指定時間的字符串。返回結果和time.ctime()格式一樣,不符合中國人習慣
10 time.mktime 返回時間戳。(可指定時間)

1.??time.localtime(seconds)

????????獲取本地時間。返回時間元組(按照系統設置的時區獲取)

import time a = time.localtime() print(a)

? ? ? ? 當不輸入seconds參數時,返回當前系統的時間;當輸入seconds時,返回指定seconds的時間,seconds為時間戳,不能為負數。后續會詳細介紹時間戳,或者看我 “時間戳” 篇更詳細。

????????現在的時間是2023年4月18日14點14分,在圖1中可看出,time.localtime()輸出了年月日時分秒,還有星期幾(tm_wday +1)、處于一年中的第幾天(tm_yday)、是否夏令時(tm_isdst)。

? ? ? ? 因為電腦算 tm_wday是從0開始的,星期一為0,0為星期一,所以在 tm_wday基礎上+1才是實際上的星期幾。而經過測試(把電腦時間改成1月1日后運行發現),tm_yday是從1開始的,所以 tm_yday是正確的,無需+1。

????????夏令時,目前中國不使用,0表示當前時間不是夏令時。這個概念最早誕生于歐洲,英國建筑師威廉·維萊特最早提出 “日光節約時間制” ,即提倡到晚上把時間 “撥” 快一小時,意識上人們就會早睡,減少照明量,從而節約更多能源。后經實行,每年節約6400萬磅蠟燭。但是由于智能手機時代的到來,夏令時開始沒落。中國在1986年也曾實行過一段時間的夏令時,但由于國情、智能化時代等原因,沒有明顯效果,到1992年,中國夏令時時代結束。

2.??time.ctime(seconds)

? ? ? ? 獲取本地時間(返回字符串,不太符合中國人習慣)

a = time.ctime() print(a)

? ? ? ? 當不輸入seconds參數時,返回本地時間;當輸入seconds時,返回指定seconds的時間,seconds為時間戳,不能為負數。后續會詳細介紹時間戳,或者看我 “時間戳” 篇更詳細。

? ? ? ? 中國人的習慣是 年 月 日 時 分 秒 星期,但是返回的是 星期 月 日 時 分 秒 年。該函數很少用到,實在想要用它的,可以用.split()分隔把它提取。

3.??time.time()

????????獲取當前時間戳。

a = time.time() print(a)

????????時間戳,定義為從經度0°的英國格林尼治1970年1月1日0時0分0秒起算,到現在所經過的秒數。因為中國在東八區,比格林尼治早8個小時,當格林尼治0點時,中國已經是8點了,所以對于中國地區,時間戳就是從北京時間1970年1月1日8時0分0秒起算,到現在所經過的秒數。

? ? ? ? 時間戳是有 “耗盡” 的一天的,按照32位的時間戳存儲結構,它能正確表示的秒數最大為2147483647(2的31次方,第一位是符號位),即到英國格林尼治時間 2038年1月19日03:14:07秒,也就是北京時間 2038年1月19日11:14:07秒。屆時所有32位的設備和32位的程序都會受到嚴重的影響。目前的辦法是加速64位的普及,及時對32位設備和程序進行退役,減少經濟損失。希望隨著科技的日新月異,科學家們也能找到完美過渡內核溢出的方法。

擴展資料(來自百度百科-2038年問題):

????????C語言中用 time_t 來代表時間和日期,python是基于母語C語言開發的。在32位系統上,time_t能表示的最大值為0x7ffffffff,當time_t取最大值時表示系統時間為2038-01-19 03:14:07,當時間再往后走時,由于32位整型溢出,時間將會被“繞回”(wrap around)成一個負數,變成了第 -2147483648 秒(代表格林尼治時間1901年12月13日20:45:52),造成應用程序發生嚴重的時間錯誤,而無法運行。

????????對于服務器和最新電腦,已經換成了64系統操作系統,2038年時間戳的問題將不復存在。而對于嵌入式設備來說,現在還有大量32位系統在全球各地運行,誰也無法保證這些系統在2038年之前就能光榮退役。另外對于64位操作系統,上面還會運行著32位的應用程序,它的2038年問題一樣對人們造成威脅,不可小視。

4.??time.strftime(format, tuple)

????????把時間元組/元組轉換成字符串。這兩種形式我們分別實驗:

? ? ? ? (1)把時間元組轉換成字符串:

a = time.localtime() b = time.strftime('%Y/%m/%d %H:%M:%S',a) # 把時間元組轉換成字符串 print(a) print(b) print(type(b))

? ? ? ? (2)把元組轉換成字符串:

a = (2023,1,1,19,13,34,0,0,0) b = time.strftime('%Y/%m/%d %H:%M:%S',a) # 把元組轉換成字符串 print(a) print(b) print(type(b))

? ? ? ? 輸入元組時,內容為9個元素,因為元組里分別對應 <年 月 日 時 分 秒 星期幾 一年中第幾天 是否夏令時> 這9個量的值,最后3位未知可填0,不填則會報錯。

? ? ? ? %Y表示年,%m表示月,%d表示日,%H表示時,%M表示分,%S表示秒。中間可以用任意英文標點符號隔開,如 / : 空格等,但目前不支持中文及中文符號。

5.??time.strptime(string, format)

????????把字符串格式轉換成時間元組

a = '2023/4/18 19:37:56' b = time.strptime(a,'%Y/%m/%d %H:%M:%S') print(b)

? ? ? ? 轉成時間元組去查看指定時間是 <星期幾> 或者 <一年中的第幾天> 是不是很簡單勒!

6.??time.perf_counter()

????????用于開始/結束的計時。(計算某程序的運行要長時間)

a = time.perf_counter()ss = 0 for i in range(1,100001):ss += i print('1到100000的總和為:',ss)b = time.perf_counter() print('計算所用時間:',b-a)

? ? ? ? 可見,計算1到100000的總和所需時間是0.008875秒,time.perf_counter()就是如此精確。

7.??time.sleep(seconds)

????????設置睡眠時間,使程序暫停一段時間后再繼續運行,不能為負數。

a = time.perf_counter()ss = 0 for i in range(1,100001):ss += i print('1到100000的總和為:',ss)time.sleep(5)b = time.perf_counter() print('計算所用時間:',b-a)

? ? ? ? 該程序運行到 time.sleep()時,暫停5秒后再繼續執行下面的操作。該函數看似作用不大,但在爬蟲領域,它的作用卻不可無,暫停一段時間再爬,就不會給對方服務器造成太大壓力。

8.??time.gmtime(seconds)

????????獲取經度0°的時間,utc時區,返回時間元組(即返回英國格林尼治時間)

a = time.gmtime() print(a)

? ? ? ? 目前時間為2023年4月18日20點12分,輸出時間為2023年4月18日12點12分,足足少了8個小時。這是由于上面第3.我們說到的時差,英國格林尼治時間比中國所在的東八區時間晚8個小時,輸出的正是英國格林尼治時間。

? ? ? ? 參數seconds為時間戳,不能為負數,關于時間戳上面第3.也有詳細解釋。當不輸入參數時,默認輸出當前格林尼治時間;當輸入指定時間戳時,輸出指定時間戳的格林尼治時間,如:

a = time.gmtime(1686213456) print(a)

? ? ? ? 時間戳1686213456秒為英國格林尼治時間2023年6月8日37分36秒。若想要得到北京時間,+8小時即可。

9.??time.asctime(tuple)

????????獲取指定時間的字符串。返回結果和 time.ctime()格式一樣,不符合中國人的使用習慣。

a = time.asctime() # 和time.ctime()一樣 print(a)tup = (2023,5,19,11,22,45,0,0,0) b = time.asctime(tup) print(b)

? ? ? ? 當不輸入參數時,結果和 time.ctime()一樣;當輸入一個元組時,返回元組中的指定時間,元組和第4.一樣,內容為9個元素,缺一報錯。該函數用得比較少。

10.? time.mktime(tuple)

????????返回指定時間的時間戳。可輸入時間元組或元組。

a = time.localtime() # 獲得當前時間的時間元組 print(a) b = time.mktime(a) # 傳入當前時間的時間元組 print(b) tup = (2023,5,19,11,22,45,0,0,0) c = time.mktime(tup) # 傳入元組 print(c)

? ? ? ? 如b,獲得當前時間的時間元組,和 time.time()一樣;如c,獲得指定時間的時間元組,元組的元素個數也需要是9個,缺一報錯。

結尾

????????time模塊常用函數只有time.sleep、time.time()、time.strftime、time.strptime 和 time.perf_counter() ,其他幾乎很少用到。然而,在time模塊中,最不可或缺的只有睡眠time.sleep、時間戳time.time()和計時time.perf_counter(),因為其他幾乎都是用datetime庫更方便,或是同等方便,但首先想到的會是datetime,time占的 “股份”不太多,工作中使用的具體時間、日期與字符串的互相轉換如下,其中dt為datetime.datetime:

該圖片來源網絡

總結

以上是生活随笔為你收集整理的python的time模块使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。