Python 常用內建模組 Day17

2021-10-03 08:25:43 字數 3042 閱讀 6280

養成乙個好的習慣只需要堅持21天,day17

datetime

python中的datetime模組可以獲取當前日期和時間。

from datetime import datetime

now = datetime.now(

)# 獲當前datetime

print

(now)

print

(type

(now)

)# 2020-02-29 11:26:45.209870

#

datetime模組還包含乙個datetime類,datetime類有各種關於時間和日期的方法。

如果僅匯入import datetime,則必須引用全名datetime.datetimedatetime.now()返回當前日期和時間,其型別是datetime

獲取指定日期和時間

from datetime import datetime

dt = datetime(

2020,5

,20,13

,14)print

(dt)

# 2020-05-20 13:14:00

datetime轉換為timestamp

什麼是timestamp呢?為什麼要把datetime轉換為timestamp呢?首先在計算機中,時間的表示並不是我們平常所看到的那樣,實際上是用數字表示的。我們把2023年1月1日 00:00:00 utc+00:00時區的時刻稱為epoch time,記為0(2023年以前的時間timestamp為負數),當前時間就是相對於epoch time的秒數,稱為timestamp。即:

timestamp =0=

1970-1

-100:

00:00 utc+0:

00

timestamp的值與時區毫無關係,timestamp一旦確定,其utc時間就確定了,轉換到任意時區的時間也是完全確定的。如果我們要把乙個datetime型別轉換為timestamp只需要簡單呼叫timestamp()方法:

from datetime import datetime

dt = datetime(

2020,5

,20,13

,14)dt.timestamp(

)# 1589951640.0

timestamp轉換為datetime

要把timestamp轉換為datetime,使用datetimefromtimestamp()方法:

from datetime import datetime

t =1589951640.0

print

(datetime.fromtimestamp(t)

)# 2020-05-20 13:14:00

datetime轉換為str

要把時間日期轉化為str,使用strftime()實現:

from datetime import datetime

now = datetime.now(

)print

(now.strftime(

'%a,%b %d %h:%m'))

# sat,feb 29 18:46

datetime加減

對日期和時間的加減實際上是把datetime往後或者往前計算,使用timedelta這個類,得到新的datetime:

from datetime import datetime,timedelta

now = datetime.now(

)now

# datetime.datetime(2020, 2, 29, 18, 56, 7, 426832)

now + timedelta(hours =10)

# datetime.datetime(2020, 3, 1, 4, 56, 7, 426832)

now + timedelta(days =1)

# datetime.datetime(2020, 3, 1, 18, 56, 7, 426832)

now + timedelta(days =

1,hours =12)

# datetime.datetime(2020, 3, 2, 6, 56, 7, 426832)

本地時間轉換為utc時間

本地時間指的是系統設定時區的時間,例如北京時間是utc+8:00時區的時間,而utc時間指utc+0:00時區的時間。

datetime類有乙個時區屬性tzinfo,初始預設為none,這就不能區分這個datetime到底是哪個時區,除非強行給datetime設定時區這個屬性。下面的系統時區恰好是utc+8:00:

from datetime import datetime,timedelta,timezone

utc_8 = timezone(timedelta(hours=8)

)now = datetime.now(

)now

# datetime.datetime(2020, 2, 29, 19, 44, 0, 88943)

dt = now.replace(tzinfo = utc_8)

dt# datetime.datetime(2020, 2, 29, 19, 44, 0, 88943, tzinfo=datetime.timezone(datetime.timedelta(0, 28800)))

Python常用內建模組

base64是一種用64個字元來表示任意二進位制資料的方法。用記事本開啟exe jpg pdf這些檔案時,我們都會看到一大堆亂碼,因為二進位制檔案包含很多無法顯示和列印的字元,所以,如果要讓記事本這樣的文字處理軟體能處理二進位制資料,就需要乙個二進位製到字串的轉換方法。base64是一種最常見的二進...

python常用內建模組(五)

requests 一 collections 是python內建的乙個集合模組,提供了許多有用的集合類。namedtuple,是乙個函式,用來建立乙個自定義的tuple物件,格式 namedtuple 名稱 屬性list 例如 建立乙個座標為 1,2 的點 from collections impo...

python常用內建模組 collections

1.namedtuple namedtuple是乙個函式,它用來建立乙個自定義的tuple物件,並且規定了tuple元素的個數,並可以用屬性而不是索引來引用tuple的某個元素。這樣一來,我們用namedtuple可以很方便地定義一種資料型別,它具備tuple的不變性,又可以根據屬性來引用,使用十分...