本篇在Python日期和時間函數(一)和(二)的基礎上,繼續講解Python日期和時間函數的知識。
在Python程序中,datetime是一個使用面向對象編程設計的模塊,可以在 Python 軟件
項目中使用日期和時間。相比於time模塊,datetime模塊的接口更加直觀、更加容易被調用。
在模塊datetime中定義了兩個常量: datetime.MINYEAR和 datetime.MAXYEAR,分別
表示 datetime 所能表示的最小、最大年份。其中,MINYEAR=1, MAXYEAR = 9999。
在模塊datetime中定義了如下表所示的類。
注意:上面列出的類型的對象都是不可變(immutable)的。
類date表示一個日期、曰期由年、月、日組成,其構造函數如下所示:
class datetime.date(year,month,day)
● year的范圍是[MINYEAR,MAXYEAR],即[1,9999]。
● month的范圍是[1,12]。月份是從1開始的,不是從0開始的。
● day的最大值根據給定的year, month參數來決定,例如閏年2月份有29天。
在類 date 中定義了加下表所示的常用方法和屬性。
例如在下面的實例文件中,演示了類date 實現日期操作的過程:
from datetime import *
import time
print('date.max:', date.max)
print('date.min:', date.min)
print('date.today():',date.today())
print('date.fromtimestamp():',date.fromtimestamp (time.time()))
執行後會輸出:
在類date中提供了如下表所示的常用實例方法和屬性。
例如在下面的實例文件中,演示了使用類date的實例方法和屬性實現日期操作的過程:
from datetime import *
import time
now = date(2022,7,30 )
tomorrow = now.replace(day = 31)
print('now:',now,'tomorrowe:',tomorrow)
print('timetuple():',now.timetuple())
print('weekday():',now.weekday())
print('isoweekday():',now.isoweekday())
print('isocalendar()):',now.isocalendar())
print('isoformat():',now.isoformat())
執行後會輸出:
在Pytho程序中,類date還可以對某些日期操作進行重載,它允許我們對日期進行如下所示的操作:
date2 = date1 + timedelta #日期加上一個間隔,返回一個新的日期對象(timedelta將在下面介紹,表示時間間隔)
date2 = date1 - timedelta #日期隔去間隔,返回一個新的日期對象
timedelta = date1 - date2 #兩個日期相減,返回一個的間間隔對象
date1 < date2 #兩個日期進行比較
注意:當對日期進行操作時,需要防止日期超出它所能表示的范圍。
在Python程序中,類time表示時間,由時、分、秒以及微秒組成。類time的構造函數如下所示:
Class datetime.time (hour[,minute[ ,second[,microsecond[,tzinfo] ] ] )
參數說明如下表所示:
類time中的常用屬性如下所示:
● time.min、time.max: time 類所能表示的最小、最大時間。其中,time.min = time(0,0,0, 0),time.max = time(23, 59, 59, 999999)
● time.resolution: 時間的最小單位,這裡是1微秒。
類time中常用的實例方法和屬性如下表所示:
例如在下面的實例文件中,演示了使用類 time實現日期操作的過程。
from datetime import *
tm = time (20, 54,10)
print('tm: ',tm)
print('hour: %d,minute: %d,second: %d,microsecond: %d' % (tm.hour,tm.minute,tm.second,tm.microsecond))
tml = tm.replace(hour = 21)
print('tml:', tml)
print('isoformat():', tm.isoformat())
執行後會輸出:
在Python程序中,類 datetime是 date與time的結合體,包含date與time的所有功能信息。類datetime 的構造函數如下所示:
datetime.datetime(year, month, day[, hour[, minute[, second[,microsecond[,tzinfo] ] ] ] ] )
類 datetime各個參數的含義與 date和 time構造函數中的一樣,讀者需要注意參數值的取值范圍。
類 datetime中定義的常用類屬性和方法如下表所示:
例如在下面的實例文件中,演示了使用類datetime實現日期操作的過程:
from datetime import *
import time
print('datetime.max:', datetime.max)
print('datetime.min:', datetime.min)
print('datetime.resolution:',datetime.resolution)
print('today():',datetime.today())
print('now():',datetime.now())
print('utcnowl():',datetime.utcnow())
print('fromtimestamp(tmstmp):',datetime.fromtimestamp(time.time()) )
print('utcfromtimestamp(tmstmp):',datetime.utcfromtimestamp(time.time()))
執行後會輸出:
因為在類datetime中提供的實例方法與屬性和date和time中的類似,所以在此不再講解這些相似的方法與屬性。