Python標準庫2 時間包

2021-08-07 09:34:06 字數 2495 閱讀 5696

time包基於c語言的庫函式(library functions)。python的直譯器通常是用c編寫的,python的一些函式也會直接呼叫c語言的庫函式。

import time

print(time.time()) # wall clock time, unit: second

print(time.clock()) # processor clock time, unit: second

time.sleep()可以將程式置於休眠狀態,直到某時間間隔之後再喚醒程式,讓程式繼續執行。

import time

print('start')

time.sleep(10) # sleep for 10 seconds

print('wake up')

當我們需要定時地檢視程式執行狀態時,就可以利用該方法。

time包還定義了struct_time物件。該物件實際上是將掛鐘時間轉換為年、月、日、時、分、秒……等日期資訊,儲存在該物件的各個屬性中(tm_year, tm_mon, tm_mday…)。下面方法可以將掛鐘時間轉換為struct_time物件:

st = time.gmtime() # 返回struct_time格式的utc時間

st = time.localtime() # 返回struct_time格式的當地時間, 當地時區根據系統環境決定。

s = time.mktime(st) # 將struct_time格式轉換成wall clock time

1) 簡介

datetime包是基於time包的乙個高階包, 為我們提供了多一層的便利。

datetime可以理解為date和time兩個組成部分。date是指年月日構成的日期(相當於日曆),time是指時分秒微秒構成的一天24小時中的具體時間(相當於手錶)。你可以將這兩個分開管理(datetime.date類,datetime.time類),也可以將兩者合在一起(datetime.datetime類)。由於其構造大同小異,我們將只介紹datetime.datetime類。

比如說我現在看到的時間,是2023年9月3日21時30分,我們可以用如下方式表達:

import datetime

t = datetime.datetime(2012,9,3,21,30)

print(t)

所返回的t有如下屬性:

hour, minute, second, microsecond

year, month, day, weekday # weekday表示週幾

2) 運算

datetime包還定義了時間間隔物件(timedelta)。乙個時間點(datetime)加上乙個時間間隔(timedelta)可以得到乙個新的時間點(datetime)。比如今天的上午3點加上5個小時得到今天的上午8點。同理,兩個時間點相減會得到乙個時間間隔。

import datetime

t = datetime.datetime(2012,9,3,21,30)

t_next = datetime.datetime(2012,9,5,23,30)

delta1 = datetime.timedelta(seconds = 600)

delta2 = datetime.timedelta(weeks = 3)

print(t + delta1)

print(t + delta2)

print(t_next - t)

在給datetime.timedelta傳遞引數(如上的seconds和weeks)的時候,還可以是days, hours, milliseconds, microseconds。

兩個datetime物件還可以進行比較。比如使用上面的t和t_next:

print(t > t_next)

3) datetime物件與字串轉換

假如我們有乙個的字串,我們如何將它轉換成為datetime物件呢?

乙個方法是用上一講的正規表示式來搜尋字串。但時間資訊實際上有很明顯的特徵,我們可以用格式化讀取的方式讀取時間資訊。

from datetime import datetime

format = "output-%y-%m-%d-%h

%m%s.txt"

str = "output-1997-12-23-030000.txt"

t = datetime.strptime(str, format)

strptime, p = parsing

我們通過format來告知python我們的str字串中包含的日期的格式。在format中,%y表示年所出現的位置, %m表示月份所出現的位置……。

反過來,我們也可以呼叫datetime物件的strftime()方法,來將datetime物件轉換為特定格式的字串。比如上面所定義的t_next,

print(t_next.strftime(format))

python標準庫模組一 時間模組time學習

本文介紹python的標準庫模組time的常見用法 如下圖所示,中介是結構化時間,然後呼叫相應的函式可以實現三種時間的互轉,這種方法在轉換字串時間的時候可以自定義格式 將結構化時間轉換為時間戳 print time.mktime time.localtime 將結構化時間轉換為字串時間 print ...

python3時間 Python3 時間處理

usr bin python3 import time 引入time模組 python3 日期和時間 當前時間戳 ticks time.time print 當前時間戳為 ticks 當前時間戳為 1522024006.313911 完全版本地時間 localtime time.localtime ...

python標準庫 時間庫

眾所皆知,每乙個程式語言都有自己的時間類庫,python也不例外用法十分簡單 最基本的類,time類 time基本函式介紹 import time print time.asctime 如果未傳入乙個tuple或乙個time struct就是使用當前的時間,返回乙個24字長的時間字串 就這個mon ...