Python中的時間與日期

  • 2020 年 5 月 18 日
  • 筆記

本文簡要介紹datetime,time模組的簡要用法。

datetime模組

datetime模組主要有四個主要的對象。
date 處理年、月、日
time處理時、分、秒、微秒
datetime處理日期和時間同時出現的情況
timedelta處理日期或時間間隔
下面給出實例,我們指定年月日,創建一個date對象,之後這些值會變成對象的屬性。

from datetime import date

data = date(2020, 5, 18)
print(data)
print(data.day)
print(data.month)
print(data.isoformat())   #調用此方法也可直接列印date對象

然後iso是指ISO 8601,一種日期和時間的國際標準,它可以對日期進行正確的排序,年月日。

from datetime import date
from datetime import timedelta

now = date.today()
print(now)
someday = timedelta(days=1)
tomorrow = now + someday
print(tomorrow)

#此模組也可以進行簡單的運算
yesterday = now - someday

不過date是有計算範圍的,date.min(1,1,1)到date.max(9999,12,31),因此,不能用它進行天文或歷史相關的計算。
然後我們可以用time()模組中的對象去表示一天內的時間,相對於上面只是改變了一下參數,用法相同,分別為hour,minute,second,microsecond,不設定初始值,默認為零。但是微秒並不一定就能電腦取出準確的數值,和電腦本身的性能有關。

from datetime import date, time, datetime

noon = time(12)
today = date.today()
noon_today = datetime.combine(today, noon)
print(noon_today)		#使用combine將date和time對象合併為datetime
#我們也可以用date()和time()方法從datetime中提取這兩個部分
noon_today.date()
noon_today.time()

time模組

上面介紹的datetime模組中有個對象叫做time,其次,python中還有一個單獨的time模組,我們下面介紹它。
一種表示絕對時間的方法是計算從某個起始點開始的秒數。Unix使用的是從1970年1月1日開始的秒數,這個數值通常稱之為紀元,它是不同系統間交換日期時間的最好方法。

import time
print(time.time())#輸出從紀元開始過去的秒數

#我們也可以把一個計算值轉換成一個字元串
print(time.ctime(now))

其實time模組中如果忽略localtime()或是gmtime()的參數,會默認返回當前的時間。