python time模塊

python time模塊主要包含各種提供日期、時間功能的相關函數。time模塊既提供了把日期、時間格式化爲字符串的功能,也提供了從字符串恢復日期、時間的功能。

 

告訴你個小祕密

 

一.前言

在 time 模塊內提供了很多函數,很多函數都會返回一個 time.struct_time 類,該類代表一個時間對象,它主要包含 9 個屬性,每個屬性的信息如圖所示:

time

 

二.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()

如果哪天你用這樣的代碼去忽悠你的項目經歷或者老闆,當你被打斷腿的時候請不要提起我!

否認

 

 

猜你喜歡:

1.python sys模塊

2.python random模塊

3.python線程創建

4.python線程互斥鎖Lock

 

轉載請註明猿說Python » python time模塊


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章