python 常用內建模組之datetime

2021-09-10 14:56:53 字數 2425 閱讀 8912

from datetime import datetime

now = datetime.now(

)print

(now)

# out: 2019-02-06 15:08:10.618082

datetime模組裡還包含了乙個datetime類,通過from datetime import datetime匯入的才是datetime這個類。

如果僅匯入import datetime,則必須引用全名datetime.datetime

datetime.now()返回當前日期和時間,其型別是datetime。

獲取指定日期的時間

要指定某個日期和時間,我們直接用引數構造乙個datetime:

from datetime import datetime

dt = datetime(

2019,2

,6,15

,15)print

(dt)

# out: 2019-02-06 15:15:00

我們把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 =0=

1970-1

-108:

00:00 utc+8:

00

datetime轉換為timestamp:
from datetime import datetime

dt = datetime(

2019,2

,6,15

,15)dt = dt.timestamp(

)print

(dt)

# dt = 1549437300.0

timestamp轉換為datetime:
from datetime import datetime

t =1549437300.0

print

(datetime.fromtimestamp(t)

)# out: 2019-02-06 15:15:00

注意:timestamp是乙個浮點數,它沒有時區的概念,而datetime是有時區的。

print

(datetime.utcfromtimestamp(t)

)# utc時間

把使用者輸入的字串型日期和時間轉換為datetime:使用datetime.strptime()。

把已有datetime格式化為字串顯示給使用者:strftime()。

datetime加減

匯入timedelta類後,可直接用+、-運算子。

from datetime import datetime, timedelta

now = datetime.now(

)ano = now + timedelta(hours =10)

ano = now - timedelta(days =1)

ano = now + timedelta(days =

2, hours =12)

print

(ano)

# out: 2019-02-09 03:33:25.145653

本地時間轉換為utc時間

乙個datetime型別有乙個時區屬性tzinfo,但是預設為none,所以無法區分這個datetime到底是哪個時區,除非強行給datetime設定乙個時區:

from datetime import datetime, timedelta, timezone

tz_utc_8 = timezone(timedelta(hours=8)

)# 建立時區utc+8:00

可以先通過utcnow()拿到當前的utc時間,再轉換為任意時區的時間。

總結:

datetime表示的時間需要時區資訊才能確定乙個特定的時間,否則只能視為本地時間。

如果要儲存datetime,最佳方法是將其轉換為timestamp再儲存,因為timestamp的值與時區完全無關。

【python】常用內建模組之itertools

【python】常用內建模組之base64

Python常用內建模組之collections

collections是python內建的乙個集合模組,提供了許多有用的集合類。1.namedtuple namedtuple是乙個函式,它用來建立乙個自定義的tuple物件,並且規定了tuple元素的個數,並可以用屬性而不是索引來引用tuple的某個元素。這樣一來,我們用namedtuple可以很...

Python常用內建模組之contextlib

任何物件,只要正確實現了上下文管理,就可以用於with語句。實現上下文管理是通過enter和exit這兩個方法實現的。例如,下面的class實現了這兩個方法 class query object def init self,name self.name name def enter self pri...

Python常用內建模組之json

json資料就是遵循一種格式的文字資料,用來使 標準化,前後端互動最好的資料格式之一。json資料就是個字串,可以表示python中的資料,比如可以把dict,list等資料統統轉化成json字串,方便交流。json模組四種常用方式 帶s的 json.loads 把json字串轉化為python資料...