搜尋
首頁後端開發Python教學深入了解python中的time模組

深入了解python中的time模組

Apr 14, 2018 am 11:33 AM
pythontime模組

本篇文章給大家分享的內容是深入了解python中的time模組,有著一定的參考價值,有需要的朋友可以參考一下

在Python中,與時間處理有關的模組就包括:time,datetime以及calendar。這篇文章,主要講解time模組。

在開始之前,首先要說明這幾點:

  1. 在Python中,通常有這幾種方式來表示時間:1 )時間戳2)格式化的時間字串3)元組(struct_time)共九個元素。由於Python的time模組實作主要呼叫C函式庫,所以各個平台可能有所不同。

  2. UTC(Coordinated Universal Time,世界協調時)亦即格林威治天文時間,世界標準時間。在中國為UTC 8。 DST(Daylight Saving Time)即夏令時。

  3. 時間戳記(timestamp)的方式:通常來說,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。我們運行“type(time.time())”,返回的是float類型。傳回時間戳方式的函數主要有time(),clock()等。

  4. 元組(struct_time)方式:struct_time元組共有9個元素,回傳struct_time的函數主要有gmtime(),localtime(),strptime()。以下列出這種方式元組中的幾個元素:

索引(Index) #屬性(Attribute) 值(Values)
0  tm_year(年)  例如2011 
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(weekday)  0 - 6(0表示週日)
7  tm_yday(一年中的第幾天)  1 - 366
8  tm_isdst(是否為夏令時)  預設為-1
#

接著介紹time模組中常用的幾個函數:

1)time.localtime([secs]):將一個時間戳記轉換為目前時區的struct_time。 secs參數未提供,則以目前時間為準。

>>> time.localtime()
time.struct_time(tm_year=2011, tm_mon=5, tm_mday=5, tm_hour=14, tm_min=14, tm_sec=50, tm_wday= 3, tm_yday=125, tm_isdst=0)
>>> time.localtime(1304575584.1361799)
time.struct_time(tm_year=2011, tm_mon=5,tm_mday.struct_time(tm_year=2011, tm_mon=5,tm_mday.struct_ 6, tm_sec=24, tm_wday=3, tm_yday=125, tm_isdst=0)

##2)time.gmtime([secs]):和localtime()方法類似,gmtime()方法是將一個時間戳記轉換為UTC時區(0時區)的struct_time。

>>>time.gmtime()

time.struct_time(tm_year=2011, tm_mon=5, tm_mday=5, tm_hour=6, tm_min=19, tm_sec=48, 
#tm_wday=3

, tm_yday=125, tm_isdst=0)

##注意:這裡的tm_wday=3表示的是周幾,但是要在這個回傳值的基礎上往後推一天,即表示的是星期四,而不是星期三。

3)time.time():傳回目前時間的時間戳記。

>>> time.time() 
1304575584.1361799

4)time.mktime(t):將一個struct_time轉換為時間戳記。

>>> time.mktime(time.localtime())
1304576839.0

5)time.sleep( secs):執行緒延遲指定的時間運行。單位為秒。

6)time.clock():這需要注意,在不同的系統上意思不同。在UNIX系統上,它傳回的是“進程時間”,它是用秒錶示的浮點數(時間戳)。而在WINDOWS中,第一次調用,返回的是進程運行的實際時間。而第二次之後的呼叫是自第一次呼叫以後到現在的運行時間。 (實際上是以WIN32上QueryPerformanceCounter()為基礎,它比毫秒錶示更精確)

    ##
    import time    
    if __name__ == '__main__':    
        time.sleep(1)    
        print "clock1:%s" % time.clock()    
        time.sleep(1)    
        print "clock2:%s" % time.clock()    
        time.sleep(1)    
        print "clock3:%s" % time.clock()

#clock1:3.35238137808e-006 運行結果:

clock2:1.00004944763 

clock3:2.00012040636


##clock3:2.00012040636

##################其中一個執行(clock3:2。時間###第二、三個clock()輸出的都是與第一個clock的時間間隔###

7)time.asctime([t]):把一個表示時間的元組或struct_time表示為這個形式: 'Sun Jun 20 23:21:05 1993'。如果沒有參數,將會將time.localtime()作為參數傳入。

>>> time.asctime()
'Thu May 5 14:55:43 2011'

8)time. ctime([secs]):把一個時間戳記(按秒計算的浮點數)轉換為time.asctime()的形式。如果參數未給或為None的時候,將會預設time.time()為參數。它的作用相當於time.asctime(time.localtime(secs))。

>>> time.ctime()
'Thu May 5 14:58:09 2011'
>>> time.ctime(time.time())
'Thu May 5 14:58:39 2011'
>>> time.ctime(1304579615)
'Thu May 5 15:13:35 2011'

9)time.strftime(format[, t]):把一個代表時間的元組或struct_time(如由time. localtime()和time.gmtime()傳回)轉換為格式化的時間字串。如果t未指定,將傳入time.localtime()。如果元組中任何一個元素越界,ValueError的錯誤將會被拋出。

##本機完整月份名稱##一天中的第幾小時(24小時制,00 - 23)#%I第一個小時(12小時制,01 - 12)%j一年中的第幾天(001 - 366)#%m月份(01 - 12)
格式 意義 備註
#%a 本地(locale)簡化星期名稱
%A #本地完整星期名稱
%b 本地簡化月份名稱
#%B
%c 本地對應的日期和時間表示
%d 一個月中的第幾天(01 - 31)
#%H


%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. 「%p」只有與「%I」配合使用才有效果。

  2. 文件中強調確實是0 - 61,而不是59,閏年秒佔兩秒(汗一個)。

  3. 當使用strptime()函數時,只有當在這年中的周數和天數被確定的時候%U和%W才會被計算。

舉例:

>>> time.strftime("%Y-%m-%d %X", time.localtime() )
'2011-05-05 16:37:06'

10)time.strptime(string[, # format]):把一個格式化時間字串轉換為struct_time。實際上它和strftime()是逆操作。

>>> time.strptime('2011-05-05 16:37:06', '%Y-%m-%d %X')
time.struct_time(tm_year =2011, tm_mon=5, tm_mday=5, tm_hour=16, tm_min=37, tm_sec=6, tm_wday=3, tm_yday=125, tm_isdst=-1)

在這個函數中,format預設為:"%a %b %d %H:%M:%S %Y"

最後,我們來對time模組做一個總結。根據先前描述,在Python中共有三種表達方式:1)timestamp 2)tuple或struct_time 3)格式化字串。

它們之間的轉換如圖所示:


相關推薦:

Python時間time詳解

python time庫

python time模組

Python時間模組之Time模組解析

以上是深入了解python中的time模組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Python腳本可能無法在UNIX上執行的一些常見原因是什麼?Python腳本可能無法在UNIX上執行的一些常見原因是什麼?Apr 28, 2025 am 12:18 AM

Python腳本在Unix系統上無法運行的原因包括:1)權限不足,使用chmod xyour_script.py賦予執行權限;2)Shebang行錯誤或缺失,應使用#!/usr/bin/envpython;3)環境變量設置不當,可打印os.environ調試;4)使用錯誤的Python版本,可在Shebang行或命令行指定版本;5)依賴問題,使用虛擬環境隔離依賴;6)語法錯誤,使用python-mpy_compileyour_script.py檢測。

舉一個場景的示例,其中使用Python數組比使用列表更合適。舉一個場景的示例,其中使用Python數組比使用列表更合適。Apr 28, 2025 am 12:15 AM

使用Python數組比列表更適合處理大量數值數據。 1)數組更節省內存,2)數組對數值運算更快,3)數組強制類型一致性,4)數組與C語言數組兼容,但在靈活性和便捷性上不如列表。

在Python中使用列表與數組的性能含義是什麼?在Python中使用列表與數組的性能含義是什麼?Apr 28, 2025 am 12:10 AM

列表列表更好的forflexibility andmixDatatatypes,何時出色的Sumerical Computitation sand larged數據集。 1)不可使用的列表xbilese xibility xibility xibility xibility xibility xibility xibility xibility xibility xibility xibles and comply offrequent elementChanges.2)

Numpy如何處理大型數組的內存管理?Numpy如何處理大型數組的內存管理?Apr 28, 2025 am 12:07 AM

numpymanagesmemoryforlargearraysefefticefticefipedlyuseviews,副本和內存模擬文件.1)viewsAllowSinglicingWithOutCopying,直接modifytheoriginalArray.2)copiesCanbecopy canbecreatedwitheDedwithTheceDwithThecevithThece()methodervingdata.3)metservingdata.3)memore memore-mappingfileShessandAstaStaStstbassbassbassbassbassbassbassbassbassbassbb

哪個需要導入模塊:列表或數組?哪個需要導入模塊:列表或數組?Apr 28, 2025 am 12:06 AM

Listsinpythondonotrequireimportingamodule,helilearraysfomthearraymoduledoneedanimport.1)列表列表,列表,多功能和canholdMixedDatatatepes.2)arraysaremoremoremoremoremoremoremoremoremoremoremoremoremoremoremoremoremeremeremeremericdatabuteffeftlessdatabutlessdatabutlessfiblesible suriplyElsilesteletselementEltecteSemeTemeSemeSemeSemeTypysemeTypysemeTysemeTypysemeTypepe。

可以在Python數組中存儲哪些數據類型?可以在Python數組中存儲哪些數據類型?Apr 27, 2025 am 12:11 AM

pythonlistscanStoryDatatepe,ArrayModulearRaysStoreOneType,and numpyArraySareSareAraysareSareAraysareSareComputations.1)列出sareversArversAtileButlessMemory-Felide.2)arraymoduleareareMogeMogeNareSaremogeNormogeNoreSoustAta.3)

如果您嘗試將錯誤的數據類型的值存儲在Python數組中,該怎麼辦?如果您嘗試將錯誤的數據類型的值存儲在Python數組中,該怎麼辦?Apr 27, 2025 am 12:10 AM

WhenyouattempttostoreavalueofthewrongdatatypeinaPythonarray,you'llencounteraTypeError.Thisisduetothearraymodule'sstricttypeenforcement,whichrequiresallelementstobeofthesametypeasspecifiedbythetypecode.Forperformancereasons,arraysaremoreefficientthanl

Python標準庫的哪一部分是:列表或數組?Python標準庫的哪一部分是:列表或數組?Apr 27, 2025 am 12:03 AM

pythonlistsarepartofthestAndArdLibrary,herilearRaysarenot.listsarebuilt-In,多功能,和Rused ForStoringCollections,而EasaraySaraySaraySaraysaraySaraySaraysaraySaraysarrayModuleandleandleandlesscommonlyusedDduetolimitedFunctionalityFunctionalityFunctionality。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。