養成乙個好的習慣只需要堅持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.datetime
。datetime.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
,使用datetime
的fromtimestamp()
方法:
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的不變性,又可以根據屬性來引用,使用十分...