Python學習筆記 time 模塊
目錄
- 簡述
- 一些術語和約定
- 表示時間的方式
- 常用函數及解析
簡述
time 模塊用于時間的訪問和轉換,它提供了各種與時間相關的函數和幾個類,其中常用的一個類是 struct_time。
盡管此模塊始終可用,但并非所有平臺上都提供所有功能。該模塊中定義的大多數函數都是調用相同名稱的平臺C庫函數。有時,這些函數的語義在平臺之間會有所不同。
一些術語和約定
- 紀元(epoch):時間的起點,與平臺有關,對于 Unix,紀元是對于Unix,紀元是 1970年1月1日 00:00:00(UTC)。可以通過 time.gmtime(0)了解給定平臺上的紀元。
- 時間戳(Timestamp):通常來說,時間戳表示的是從1970年1月1日0時0分0秒開始到現在的秒數,不考慮閏秒。利用 time.time() 函數來獲取時間戳。
- UTC:UTC是指世界標準時間(以前稱為格林威治標準時間,即 GMT)。
- 時間元組(struct_time):時間元組是一種結構化的時間,它表現為一個元組(其實是一個類),共有九個元素,分別是:年, 月, 日,時,分,秒,一年中的第幾周,一年中的第幾天,夏令時(具體如下表)。struct_time 可以利用索引或屬性名訪問屬性的值。
索引 | 屬性 | 值 | 注釋 |
---|---|---|---|
0 | tm_year | 2019 | (本年的年份) |
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 | (60或61是閏秒) |
6 | tm_wday | 0 ~ 6 | 0 表示周一 |
7 | tm_yday | 1 ~ 366 | 儒略歷 |
8 | tm_isdst | -1, 0, 1 | 1表示夏令時生效,反之為0,-1表示狀態未知 |
表示時間的方式
時間的表示方式有以下三種,其中計算機認識的時間只能是‘時間戳’格式,而人能看懂的則是另外兩種格式
- 時間戳(timestamp)
- 結構化的時間(struct_time)
- 格式化的時間字符串(format String):利用 time.strftime() 函數來獲取格式化的時間字符串,需傳入表示格式的字符串(格式字符如下表)。
字符 | 含義 |
---|---|
%y | 兩位數的年份表示(00-99) |
%Y | 四位數的年份表示(000-9999) |
%m | 月份(01-12) |
%d | 月內中的一天(0-31) |
%H | 24小時制小時數(00-23) |
%I | 12小時制小時數(01-12) |
%M | 分鐘數(00-59) |
%S | 秒(00-59) |
%f | 以十進制數表示的毫秒(000000-999999) |
%a | 本地簡化星期名稱 |
%A | 本地完整星期名稱 |
%b | 本地簡化的月份名稱 |
%B | 本地完整的月份名稱 |
%c | 本地相應的日期表示和時間表示 |
%j | 年內的一天(001-366) |
%p | 本地A.M.或P.M.的等價符 |
%U | 一年中的星期數(00-53)星期天為星期的開始,第一個星期日之前的日子都被視為第0周 |
%u | 以十進制數顯示的 ISO 8601 星期中的日序號,其中 1 表示星期一。 |
%w | 星期(0-6),其中0表示星期日,6表示星期六 |
%W | 一年中的星期數(00-53)星期一為星期的開始,第一個星期一之前的日子都被視為第0周 |
%x | 本地相應的日期表示 |
%X | 本地相應的時間表示 |
%z | ±HHMM[SS[.ffffff]] 形式的 UTC 差值(如果對象為無知型則為空字符串) |
%Z | 當前時區的名稱 |
%V | 以十進制數顯示的 ISO 8601 星期,以星期一作為每周的第一天。 第 01 周為包含 1 月 4 日的星期。 |
%G | 帶有世紀的 ISO 8601 年份,表示包含大部分 ISO 星期 (%V) 的年份。 |
%% | %號本身 |
三種方式的轉換:
常用函數及解析
time()
功能:以小數秒為單位獲取時間戳
參數:無
返回值:一個浮點數,表示紀元到現在的秒數
time_ns()
功能:與 time() 相似,但單位是納秒
參數:無
返回值:一個整數
asctime([t])
功能:將一個表示時間的元組或 struct_time 表示為這種形式:'Sat Sep 28 16:54:12 2019'
參數:t 表示一個時間元組或一個 struct_time,若不提供該參數則默認 t = time.localtime()
返回值:固定格式化的時間字符串
ctime(secs=None)
功能:將時間戳轉換為本地時間的子符串,等效于 asctime(localtime(seconds))
參數:secs 表示時間戳,默認為 None
返回值:一個字符串
gmtime([secs])
功能:將時間戳轉換為UTC時區的結構化時間 struct_time
參數:secs 表示時間戳,若不提供該參數,則默認為當前時刻的時間戳
返回值:時間元組 struct_time
localtime([secs])
功能:將時間戳轉換為當地的結構化時間 struct_time
參數:secs 表示時間戳,若不提供該參數,則默認為當前時刻的時間戳
返回值:時間元組 struct_time
mktime(struct_time)
功能:將結構化的時間轉化為時間戳,相當于 localtime 的反函數
參數:struct_time 表示一個結構化的時間
返回值:一個時間戳
strftime(format[, struct_time])
功能:將結構化的時間轉化為格式化的時間字符串
參數:format 是一個表示時間格式的字符串;struct_time 表示結構化的時間,若不提供該參數,則默認為當前時刻的結構化時間
返回值:一個時間字符串
strptime(time_str[, format])
功能:將格式化的時間字符串轉化為結構化的時間
參數:time_str 表示時間字符串;format 表示時間字符串的格式,若不提供該參數,則默認其值為:'%a %b %d %H:%M:%S %Y'
返回值:結構化時間 struct_time
sleep(secs)
功能:使線程執行暫停(睡眠)給定的秒數
參數:secs 表示秒數,可以是浮點數
返回值:None
perf_counter()
功能:以小數秒為單位返回性能計數器的值,包括睡眠的時間,且是系統范圍內的
參數:無
返回值:一個浮點數
perf_counter_ns()
功能:與 perf_counter() 相似,但單位是納秒
參數:無
返回值:一個整數
process_time()
功能:以小數秒為單位返回當前進程的系統和用戶 CPU 時間總和的值,不包括睡眠時間,且是進程范圍內
參數:無
返回值:一個浮點數
process_time_ns()
功能:與 process_time() 相似,但單位是納秒
參數:無
返回值:一個整數
monotonic()
功能:以小數秒為單位返回單調時鐘(即不能倒退的時鐘)的值
參數:無
返回值:一個浮點數
monotonic_ns()
功能:與 monotonic() 相似,但以納秒為單位
參數:無
返回值:一個整數
thread_time()
功能:以小數秒為單位返回當前線程的系統和用戶 CPU 時間之和的值,不包括睡眠時間,且特定于線程
參數:無
返回值:一個浮點數
thread_time_ns()
功能:與 thread() 相似,但單位是納秒
參數:無
返回值:一個整數
智能推薦
python之Time模塊
在Python中,通常有這幾種方式來表示時間: 時間戳(timestamp) : 通常來說,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。 我們運行“type(time.time())”,返回的是float類型。 格式化的時間字符串 元組(struct_time) struct_time元組共有9個元素共九個元素: (年,月,日,時,分,秒,一年中...
python模塊3:time
在Python中,與時間處理有關的模塊就包括:time,datetime以及calendar。這篇文章,主要講解time模塊。 在開始之前,首先要說明這幾點: 在Python中,通常有這幾種方式來表示時間:1)時間戳 2)格式化的時間字符串 3)元組(struct_time)共九個元素。由于Python的time模塊實現主要調用C庫,所以各個平臺可能有所不同。 UTC(Coordinated Un...
Python(十六)time模塊
****************************************不負年華,不負己********************************************* 一、相關的時間概念 (1)Python中的時間類型概念 1.1)時間戳 特點:以秒為單位的浮點小數 優點:時間戳單位最適于做日期運算! 缺陷:1970年之前的日期...
猜你喜歡
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...