python time模塊主要包含各種提供日期、時間功能的相關函數。time模塊既提供了把日期、時間格式化爲字符串的功能,也提供了從字符串恢復日期、時間的功能。
一.前言
在 time 模塊內提供了很多函數,很多函數都會返回一個 time.struct_time 類,該類代表一個時間對象,它主要包含 9 個屬性,每個屬性的信息如圖所示:
二.time模塊常用函數介紹
time.gmtime([secs]) — 將以秒數代表的時間轉換爲 struct_time 對象。如果不傳入參數,則使用當前時間;
time.asctime([t]) — 將時間元組或 struct_time 轉換爲時間字符串。如果不指定參數 t,則默認轉換當前時間;
time.localtime([secs]) — 將以秒數代表的時間轉換爲代表當前時間的 struct_time 對象。如果不傳入參數,則使用當前時間;
time.sleep(secs) — 暫停 secs 秒,什麼都不幹;
time.strftime(format[, t]) — 將時間元組或 struct_time 對象格式化爲指定格式的時間字符串。如果不指定參數 t,則默認轉換當前時間;
time.strptime(string[, format]) — 將字符串格式的時間解析成 struct_time 對象;
time.time() — 返回從 1970 年 1 月 1 日 0 點整到現在過了多少秒;
time.tzname — 返回本地時區的名字;
1 2 3 4 | # 獲取本地時區的名字 local_time = time.tzname[0] # 如果不設置編碼格式,輸出是亂碼 print(local_time.encode('latin-1').decode('gbk')) |
輸出:
1 | 中國標準時間 |
三.time模塊使用
1.獲取時間
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 | # !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:何以解憂 @Blog(個人博客地址): shuopython.com @WeChat Official Account(微信公衆號):猿說python @Github:www.github.com
@File:python_time.py @Time:2019/11/07 21:25
@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累! """
# 導入時間time模塊 import time
# 獲取當前時間,默認格式 print(time.asctime())
# 返回 time.struct_time 類型對象 print(time.gmtime())
# 返回 time.struct_time 類型對象 print(time.localtime())
# 返回從 1970 年 1 月 1 日 0 點整到現在過了多少秒 print(time.time()) |
輸出結果:
1 2 3 4 | Thu Nov 7 21:26:29 2019 time.struct_time(tm_year=2019, tm_mon=11, tm_mday=7, tm_hour=13, tm_min=26, tm_sec=29, tm_wday=3, tm_yday=311, tm_isdst=0) time.struct_time(tm_year=2019, tm_mon=11, tm_mday=7, tm_hour=21, tm_min=26, tm_sec=29, tm_wday=3, tm_yday=311, tm_isdst=0) 1573133189.8083951 |
2.自定義時間格式
可以通過 time.strftime() 函數 將 struct_time 對象轉爲自定義時間格式 或者 將字符串轉爲 struct_time 對象,在轉換過程中可能需要用到以下格式參數:
%a 星期幾的簡寫;
%A 星期幾的全稱;
%b 月分的簡寫;
%B 月份的全稱;
%c 標準的日期的時間串;
%C 年份的後兩位數字;
%d 十進制表示的每月的第幾天;
%D 月/天/年;
%e 在兩字符域中,十進制表示的每月的第幾天;
%F 年-月-日;
%g 年份的後兩位數字,使用基於周的年;
%G 年分,使用基於周的年;
%h 簡寫的月份名;
%H 24小時制的小時;
%I 12小時制的小時;
%j 十進制表示的每年的第幾天;
%m 十進制表示的月份;
%M 十時製表示的分鐘數;
%n 新行符;
%p 本地的AM或PM的等價顯示;
%r 12小時的時間;
%R 顯示小時和分鐘:hh:mm;
%S 十進制的秒數;
%t 水平製表符;
%T 顯示時分秒:hh:mm:ss;
%u 每週的第幾天,星期一爲第一天 (值從0到6,星期一爲0);
%U 第年的第幾周,把星期日做爲第一天(值從0到53);
%V 每年的第幾周,使用基於周的年;
%w 十進制表示的星期幾(值從0到6,星期天爲0);
%W 每年的第幾周,把星期一做爲第一天(值從0到53);
%x 標準的日期串;
%X 標準的時間串;
%y 不帶世紀的十進制年份(值從0到99);
%Y 帶世紀部分的十制年份;
%z,%Z 時區名稱,如果不能得到時區名稱則返回空字符;
%% 百分號;
將 struct_time 對象轉爲自定義時間格式,示例代碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 | # 導入時間time模塊 import time
str_time = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())#再由中間格式轉爲字符串(str) print(str_time)
str_time = time.strftime('%Y/%m/%d %H:%M:%S', time.localtime())#再由中間格式轉爲字符串(str) print(str_time)
str_time = time.strftime('%Y/%m/%d %H-%M-%S', time.localtime())#再由中間格式轉爲字符串(str) print(str_time) |
輸出結果:
1 2 3 | 2019-11-07 14:14:59 2019/11/07 22:14:59 2019/11/07 22-14-59 |
3.查看代碼執行時間
在python開發項目過程中,我們往往會優化代碼,查找哪些代碼比較耗時,具體耗時多少,那麼同樣也可以通過time模塊完成,
1 2 3 4 5 6 | # 導入時間模塊 import time
start_time = time.time() # 代碼塊 elapse_time = time.time() - start_time # <strong><span style="color: #ff0000;">單位:秒</span></strong> |
代碼分析:通過 time.time() 獲取當前時間,然後兩個時間相減,自然就能得到代碼耗時時間,單位:秒,示例代碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # 導入時間time模塊 import time
def my_model():
start_time = time.time() # 如果年底老闆給我加薪,我就註釋這行代碼,可以讓程序運行效率明顯提升 time.sleep(0.5) end_time = time.time() print("核心功能代碼耗時:{}秒".format(end_time - start_time))
if __name__ == "__main__":
# 核心功能實現 for i in range(0,10): my_model() |
如果哪天你用這樣的代碼去忽悠你的項目經歷或者老闆,當你被打斷腿的時候請不要提起我!
猜你喜歡:
轉載請註明:猿說Python » python time模塊