python經常使用模塊——time

time模塊

1、time模塊基礎

三個時間表示:1.時間戳;2.結構化時間;3.格式化時間;html

1.時間戳

從1970年1月1日到如今的秒數;python

2.結構化時間

一個時間的元組; 內容以下:time.structtime(tmyear=2018, tmmon=1, tmmday=19, tmhour=10, tmmin=39, tmsec=45, tmwday=4, tmyday=19, tmisdst=0)web

依次爲:
    tm_year     年份(包括世紀,如1998)
    tm_mon      月(1-12)
    tm_mday     天(1-31)
    tm_hour     小時(0-23)
    tm_min      分鐘(到59)
    tm_sec      秒(到59)
    tm_wday     一週的第幾天(0-6,星期一是0)
    tm_yday     一年中的第幾天(一天一年,1-366)
    tm_isdst    夏令時(夏時制)標誌(- 1, 0或1)

3.格式化時間

例如: 2018-01-19 10:43:36spa

2、 time模塊方法

官方time模塊介紹: https://docs.python.org/3/library/time.htmlcode

1. asctime(...)

asctime([tuple]) -> string
將 結構化時間 轉化爲 字符串形式;當不指定參數時,默認使用localtime;
例如:
    import time
    t_time=time.localtime()           # t_time = time.struct_time(tm_year=2018, tm_mon=1, tm_mday=19, tm_hour=10, tm_min=57, tm_sec=15, tm_wday=4, tm_yday=19, tm_isdst=0)
    print(time.asctime(t_time))       # 輸出 Fri Jan 19 10:57:15 2018

2. clock(...)

clock() -> floating point number
記錄CPU使用的時間。
例如:當執行 print(time.clock()) 時,記錄CPU執行print語句的時間;

3. ctime(...)

ctime(seconds) -> string
指定參數秒數,返回一個字符串時間。
若是指定參數,則返回時間是: 零時區1970年1月1日0點0分0秒時的當前時區localtime + 指定的秒數。
若是未指定參數,則返回時間爲:當前的本地時間localtime

假如如今北京時間是東八區,指定秒數30: time.ctime(30),則返回  Thu Jan  1 08:00:30 1970 ; 假如不指定秒數,則返回當前時間 local_time
例如:
    import time
    print(time.ctime(30))        # 輸出 Thu Jan  1 08:00:30 1970
    print(time.ctime())          # 輸出 Fri Jan 19 11:08:41 2018
    print(time.localtime())      # 輸出 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=19, tm_hour=11, tm_min=08, tm_sec=41, tm_wday=4, tm_yday=19, tm_isdst=0)

4. get_clock_info(...)

get_clock_info(name: str) -> dict
暫時跳過;之後補充;

5. gmtime(...)

gmtime([seconds]) -> (tm_year, tm_mon, tm_mday, tm_hour, tm_min,tm_sec, tm_wday, tm_yday, tm_isdst)
指定參數秒數,返回的格式是結構化時間;
若是指定參數,則返回的時間爲:1970年1月1日0點0分 + 指定的秒數;
若是未指定參數,則返回 當前UTC(零時區的)時間。即東八區北京時間減去8小時的時間。

例如:
import time
print(time.gtime(30))        # 輸出 time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=30, tm_wday=3, tm_yday=1, tm_isdst=0)
print(time.gtime())          # 輸出 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=19, tm_hour=3, tm_min=22, tm_sec=13, tm_wday=4, tm_yday=19, tm_isdst=0)
print(time.localtime())      # 輸出本地時間 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=19, tm_hour=11, tm_min=22, tm_sec=13, tm_wday=4, tm_yday=19, tm_isdst=0)

6. localtime(...)

localtime([seconds]) -> (tm_year,tm_mon,tm_mday,tm_hour,tm_min,
                          tm_sec,tm_wday,tm_yday,tm_isdst)
指定參數,返回結構化時間;
若是指定了參數,則返回時間爲:零時區1970年1月1日0點0分時,當前時區(如東八區)的localtime + 指定的秒數
若是未指定參數,則返回時間爲:當前的本地時間localtime

例如:
import time
print(time.localtime(30))    # time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=30, tm_wday=3, tm_yday=1, tm_isdst=0)
print(time.localtime())      # time.struct_time(tm_year=2018, tm_mon=1, tm_mday=19, tm_hour=11, tm_min=45, tm_sec=26, tm_wday=4, tm_yday=19, tm_isdst=0)
print(time.ctime())          # Fri Jan 19 11:45:26 2018

7. mktime(...)

mktime(tuple) -> floating point number
將結構化時間轉換爲時間戳;

例如:
import time
t_time=time.localtime()
print(t_time)                # time.struct_time(tm_year=2018, tm_mon=1, tm_mday=19, tm_hour=11, tm_min=52, tm_sec=21, tm_wday=4, tm_yday=19, tm_isdst=0)
print(time.mktime(t_time))   # 1516333941

8. monotonic(...)

monotonic() -> float
不能倒退的單調時鐘;之後補充

9. perf_counter(...)

perf_counter() -> float
計數器;之後補充

10. process_time(...)

process_time() -> float
用於分析的過程時間:內核和用戶空間CPU時間之和。

11. sleep(...)

sleep(seconds)
睡眠指定的秒數;必須指定,能夠爲浮點數;

12. strftime(...)

strftime(format[, tuple]) -> string
根據指定的時間格式將時間元組轉換成字符串。若是不指定時間元組,則默認使用localtime。

例如:
import time
t_time=time.localtime()    # t_time = time.struct_time(tm_year=2018, tm_mon=1, tm_mday=19, tm_hour=13, tm_min=2, tm_sec=3, tm_wday=4, tm_yday=19, tm_isdst=0)
time.sleep(5)
print(time.strftime('%Y-%m-%d %H:%M:%S',t_time))   #輸出 2018-01-19 13:02:03

經常使用格式碼:
    %Y  以十進制數字表示的年 例如2018.
    %m  十進制表示的月 [01,12].
    %d  十進制表示的天 [01,31].
    %H  十進制表示的小時 [00,23].
    %M  十進制表示的分鐘 [00,59].
    %S  十進制表示的秒  [00,61].
    %z  相對UTC的偏移量;若是東區爲+,西區爲-;例如東八區 +0800.
    %a  本地時區當前的工做日縮寫,即星期;例如:星期五 Fri.
    %A  本地時區當前的工做日全寫,即星期;例如:星期五 Friday.
    %b  本地時區當前的月份縮寫,即月份;例如:一月 Jan.
    %B  本地時區當前的月份全寫,即月份;例如:一月 January.
    %c  本地的當前時間,字符串格式;例如: Fri Jan 19 13:17:50 2018.
    %I  以十進制數字表示小時,12小時制 [01,12].
    %p  上午或下午,例如 AM or PM.

    %j  一年中的第幾天,十進制數[001,366]。
    %U  一年中的第幾周,十進制數[00,53]。星期日做爲一週的第一天;在一年的第一個星期日前的幾天,都認爲在第0周;
    %w  一週中的第幾天,十進制數[0,6];星期日爲0
    %W  一年中的第幾周,十進制數[00,53]。星期一做爲一週的第一天;在一年的第一個星期一前的幾天,都認爲在第0周;
    %x  本地時間的年月日的適當表示形式,字符串格式;例如:01/19/18   2018年1月19日。
    %X  本地時間的時間適當表示形式,字符串格式;例如:13:54:42
    %y  兩位數字表示年份,沒有世紀號;十進制數;[00,99]
    %Z  時區名稱(若是沒有時區,則沒有字符)。
    %%  %字符

13. strptime(...)

strptime(string, format) -> struct_time

根據指定的格式和字符串時間,把時間轉換爲結構化時間(元組形式);兩個參數必須指定;

例如:
import time
str_time="2018-01-19 13:02:03"
print(time.strptime(str_time,'%Y-%m-%d %H:%M:%S'))   # 輸出 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=19, tm_hour=13, tm_min=23, tm_sec=9, tm_wday=4, tm_yday=19, tm_isdst=-1)

經常使用格式碼:和上面同樣。orm

14. time(...)

time() -> floating point number
從紀元開始以秒爲單位返回當前時間;即時間戳;若是系統支持,則可能返回浮點數,即更精確;

3、補充一點datetime模塊

import datetime
now_time=datetime.datetime.now()
print(now_time)               # 輸出 2018-01-19 15:21:28.702212

平時咱們也能夠用這個取時間。htm

datetime

####### 獲取當前的日期和時間
from datetime import datetime

now_time=datetime.now()
print(now_time)                        # 2015-05-18 16:28:07.198690


####### 獲取指定日期和時間
from datetime import datetime
dt = datetime(2015, 4, 19, 12, 20)     # 用指定日期時間建立datetime
print(dt)                            # 2015-04-19 12:20:00


####### 將時間轉換爲時間戳
from datetime import datetime
dt = datetime(2015, 4, 19, 12, 20)     # 用指定日期時間建立datetime
dt.timestamp()                         # 把datetime轉換爲timestamp   1429417200.0


####### 將時間戳轉換爲時間
from datetime import datetime
t = 1429417200.0
print(datetime.fromtimestamp(t))    # 2015-04-19 12:20:00


####### 將字符串轉換爲時間
from datetime import datetime
cday = datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')
print(cday)                        # 2015-06-01 18:19:59


####### 將時間轉換爲字符串
from datetime import datetime
now = datetime.now()
print(now.strftime('%a, %b %d %H:%M'))    # Mon, May 05 16:28


####### 時間的加減
from datetime import datetime, timedelta
now = datetime.now()
print(now)                            # 10小時後的日期。輸出 datetime.datetime(2015, 5, 18, 16, 57, 3, 540997)的結果
now + timedelta(hours=10)             # 輸出 datetime.datetime(2015, 5, 19, 2, 57, 3, 540997)的結果
now - timedelta(days=1)               # 1day前的時間。輸出 datetime.datetime(2015, 5, 17, 16, 57, 3, 540997)的結果
now + timedelta(days=2, hours=12)     # 2天12小時後的日期。輸出 datetime.datetime(2015, 5, 21, 4, 57, 3, 540997)的結果
相關文章
相關標籤/搜索