Python丨常用內建模組 datetime

2021-10-02 03:44:07 字數 3164 閱讀 7101

- 描述

datetime是python處理日期和時間的標準庫

- datetime模組中的類

類名功能說明

date

日期物件,常用的屬性有year,month,day

time

時間物件

datetime

日期時間物件,常用的屬性有hour,minute,second,microsecond

datetime_capi

日期時間物件c語言介面

timedelta

時間間隔,即兩個時間點之間的長度

tzinfo

時區資訊物件

- 獲取當前日期和時間

from datetime import datetime

now = datetime.now(

)# 獲取當前datetime

print

(now)

# 輸出結果:2020-01-13 10:32:40.277219

print

(type

(now)

)# 輸出結果:

注:datetime模組包含乙個datetime類

- 獲取指定日期和時間

指定某個日期和時間,可以直接用引數構造乙個datetime

from datetime import datetime

dt = datetime(

2020,1

,24,10

,39)# 用指定日期時間建立datetime

print

(dt)

# 輸出結果:2020-01-24 10:39:00

- datetime轉換為timestamp

在計算機中,時間實際上是用數字表示的,把2023年1月1日 00:00:00 utc + 00:00時區的時刻稱為epoch time,記為0(2023年以前的時間timestamp為負數),當前時間就是相對於epoch time的秒數,稱為timestamp。

timestamp:時間戳

可以認為

timestamp =0=

1970-1

-100:

00:00 utc+0:

00

對應的北京時間

timestamp =0=

1970-1

-108:

00:00 utc+8:

00

timestamp的值與時區毫無關係,因為timestamp一旦確定,其utc時間就確定了,轉換到任意時區的時間也是完全確定的。

# datetime型別轉換為timestamp

from datetime import datetime

dt = datetime(

2020,1

,24,10

,39)# 用指定日期時間建立datetime

print

(dt.timestamp())

# 把datetime轉換為timestamp

# 輸出結果:1579833540.0

python的timestamp是乙個浮點數,如果有小數,小數字表示毫秒數

- timestamp轉換為datetime

from datetime import datetime

t =1579833540.0

print

(datetime.fromtimestamp(t)

)# 輸出結果:2020-01-24 10:39:00

timestamp是乙個浮點數,沒有時區的概念,而datetime是由時區的,上述轉換時在timestamp和本地時間做轉換

timestamp也可以直接被轉換到utc標準時區的時間

from datetime import datetime

t =1579833540.0

print

(datetime.fromtimestamp(t)

)# 本地時間

# 輸出結果:2020-01-24 10:39:00

print

(datetime.utcfromtimestamp(t)

)# utc時間

# 輸出結果:2020-01-24 02:39:00

-str轉換為datetime
# 通過datetime.strptime()轉換

from datetime import datetime

cday = datetime.strptime(

'2020-1-24 11:01:30'

,'%y-%m-%d %h:%m:%s'

)print

(cday)

# 輸出結果:2020-01-24 11:01:30

print

(type

(cday)

)# 輸出結果:

python中時間日期格式化符號

符號說明

%y兩位數的年份表示(00-99)

%y四位數的年份表示(000-9999)

%m月份(01-12)

%d月內中的一天(0-31)

%h24小時制(0-23)

%m分鐘數(00-59)

%s秒(00-59)

datetime加減

from datetime import datetime, timedelta

now = datetime.now(

)h_now = now + timedelta(hours=10)

d_now = now + timedelta(days=1)

hd_now = now + timedelta(days=

2, hours=12)

print

(h_now)

# 輸出結果:2020-01-13 21:09:48.273027

print

(d_now)

# 輸出結果:2020-01-14 11:12:13.685066

print

(hd_now)

# 輸出結果:2020-01-15 23:12:13.685066

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的不變性,又可以根據屬性來引用,使用十分...