datetime庫(kù)概述
datetime庫(kù)定義了2個(gè)常量和5個(gè)類(lèi)坑傅。
2個(gè)常量分別是MINYEAR=1
和MAXYEAR=9999
件豌。
5個(gè)類(lèi)分別是:
- date類(lèi):表示日期的類(lèi)
- time類(lèi):表示時(shí)間的類(lèi)
- datetime類(lèi):表示時(shí)間日期的類(lèi)
- timedelta類(lèi):表示兩個(gè)datetime對(duì)象的差值疮方;
- tzinfo類(lèi):表示時(shí)區(qū)的相關(guān)信息
datetime的5個(gè)類(lèi)詳解
date類(lèi)
date類(lèi)包含三個(gè)參數(shù),分別為year茧彤,month案站,day,返回格式為year-month-day棘街。
構(gòu)造函數(shù)
-
__new__(year,month,day)
:默認(rèn)的構(gòu)造函數(shù)蟆盐,創(chuàng)建date類(lèi)的對(duì)象時(shí)直接傳入year,month遭殉,day三個(gè)參數(shù)即可返回對(duì)應(yīng)的日期石挂。 -
fromtimestamp(t)
:使用時(shí)間戳構(gòu)造對(duì)象,使用方法為:datetime.date.fromtimestamp(t)险污,傳入?yún)?shù)t為一個(gè)時(shí)間戳痹愚,返回時(shí)間戳t對(duì)應(yīng)的日期富岳。 -
today()
:使用今天的日期構(gòu)造對(duì)象,使用方法為:datetime.date.today()拯腮,無(wú)參數(shù)窖式,返回今天的日期。 -
fromordinal(n)
:使用日期序數(shù)構(gòu)造對(duì)象动壤,使用方法為:datetime.date.fromordinal(n)萝喘,傳入?yún)?shù)為一個(gè)整數(shù)序數(shù),代表從公元1年1月1日開(kāi)始的序數(shù)琼懊,序數(shù)每增加1代表增加1天阁簸,返回最終計(jì)算出的日期。
方法
-
timetuple()
:返回日期對(duì)應(yīng)的time.struct_time對(duì)象哼丈,格式為time.struct_time(tm_year=1, tm_mon=1, tm_mday=2, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=2, tm_isdst=-1)
启妹。 -
toordinal()
:相當(dāng)于fromordinal(n)
的逆過(guò)程,返回值即為fromordinal(n)
中的日期序數(shù)n醉旦。 -
weekday()
:返回該日期對(duì)應(yīng)星期幾饶米,用[0,6]代表星期一到星期日。 -
isoweekday()
:作用同weekday()
车胡,用[1,7]代表星期一到星期日檬输。 -
isocalendar()
:返回一個(gè)三元組,格式為(year,week_number,weekday)吨拍,分別代表年褪猛,第幾周网杆,星期幾羹饰。 -
isoformat()
:返回標(biāo)準(zhǔn)日期格式:YYYY-MM-DD。 -
ctime()
:返回格式為:Sat Sep 8 00:00:00 2018 -
strftime(format)
:把日期按照f(shuō)ormat指定的格式進(jìn)行格式化碳却,具體的格式化符號(hào)如下队秩。 -
replace(year,month,day)
:傳入?yún)?shù)為year,month昼浦,day馍资,返回對(duì)應(yīng)的新日期。
%y 兩位數(shù)的年份表示(00-99)
%Y 四位數(shù)的年份表示(000-9999)
%m 月份(01-12)
%d 月內(nèi)中的一天(0-31)
%H 24小時(shí)制小時(shí)數(shù)(0-23)
%I 12小時(shí)制小時(shí)數(shù)(01-12)
%M 分鐘數(shù)(00=59)
%S 秒(00-59)
%a 本地簡(jiǎn)化星期名稱(chēng)
%A 本地完整星期名稱(chēng)
%b 本地簡(jiǎn)化的月份名稱(chēng)
%B 本地完整的月份名稱(chēng)
%c 本地相應(yīng)的日期表示和時(shí)間表示
%j 年內(nèi)的一天(001-366)
%p 本地A.M.或P.M.的等價(jià)符
%U 一年中的星期數(shù)(00-53)星期天為星期的開(kāi)始
%w 星期(0-6)关噪,星期天為星期的開(kāi)始
%W 一年中的星期數(shù)(00-53)星期一為星期的開(kāi)始
%x 本地相應(yīng)的日期表示
%X 本地相應(yīng)的時(shí)間表示
%Z 當(dāng)前時(shí)區(qū)的名稱(chēng)
%% %號(hào)本身
time類(lèi)
time類(lèi)包含六個(gè)參數(shù)鸟蟹,分別為hour,minute使兔,second建钥,microsecond,tzinfo虐沥,fold熊经,返回格式為hour:minute:second(.microsecond)泽艘。
構(gòu)造函數(shù)
__new__(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, fold=0)
:默認(rèn)的構(gòu)造函數(shù),創(chuàng)建time類(lèi)的對(duì)象時(shí)直接傳入相應(yīng)參數(shù)即可返回對(duì)應(yīng)的時(shí)間镐依。
方法
-
isoformat()
:返回標(biāo)準(zhǔn)時(shí)間格式:HH:MM:SS.mmmmmm+zz:zz匹涮。 -
strftime(format)
:把時(shí)間按照f(shuō)ormat指定的格式進(jìn)行格式化,具體的格式化符號(hào)與date類(lèi)中介紹的相同槐壳。 -
utcoffset()
:返回timezone的偏移量然低。 -
tzname()
:返回timezone的名稱(chēng)。 -
replace()
:傳入對(duì)應(yīng)的參數(shù)宏粤,返回新的時(shí)間脚翘。
datetime類(lèi)
datetime類(lèi)是date類(lèi)和time類(lèi)的合體,包含前兩個(gè)類(lèi)的全部參數(shù)绍哎。
構(gòu)造函數(shù)
-
__new__(year, month, day, hour=0, minute=0, second=0,microsecond=0, tzinfo=None, fold=0)
:默認(rèn)的構(gòu)造函數(shù)来农,創(chuàng)建datetime類(lèi)的對(duì)象時(shí)直接傳入相應(yīng)參數(shù)即可返回對(duì)應(yīng)的時(shí)間日期。 -
fromtimestamp(t)
:使用時(shí)間戳構(gòu)造對(duì)象崇堰,傳入?yún)?shù)t為一個(gè)時(shí)間戳沃于,返回時(shí)間戳t對(duì)應(yīng)的日期和時(shí)間。 -
utcfromtimestamp(t)
:使用時(shí)間戳構(gòu)造對(duì)象海诲,傳入?yún)?shù)t為一個(gè)時(shí)間戳繁莹,返回時(shí)間戳t對(duì)應(yīng)的UTC(時(shí)間標(biāo)準(zhǔn)時(shí)間)日期和時(shí)間。 -
now()
:使用當(dāng)前日期和時(shí)間構(gòu)造對(duì)象特幔,無(wú)參數(shù)咨演,返回當(dāng)前的日期和時(shí)間。 -
utcnow()
:使用當(dāng)前日期和時(shí)間構(gòu)造對(duì)象蚯斯,無(wú)參數(shù)薄风,返回當(dāng)前的UTC(時(shí)間標(biāo)準(zhǔn)時(shí)間)日期和時(shí)間。 -
combine(date,time)
:使用date和time構(gòu)造對(duì)象拍嵌,傳入?yún)?shù)為1個(gè)date對(duì)象和1個(gè)time對(duì)象遭赂,返回計(jì)算出的日期。
方法
-
timetuple()
:返回日期時(shí)間對(duì)應(yīng)的time.struct_time對(duì)象横辆,格式為time.struct_time(tm_year=1973, tm_mon=11, tm_mday=29, tm_hour=21, tm_min=33, tm_sec=9, tm_wday=3, tm_yday=333, tm_isdst=-1)
撇他。 -
utctimetuple()
:與timetuple()
相似,返回日期時(shí)間對(duì)應(yīng)的UTC(時(shí)間標(biāo)準(zhǔn)時(shí)間)time.struct_time對(duì)象狈蚤。 -
astimezone()
:返回的格式中加入時(shí)區(qū)信息困肩,格式為:1973-11-29 21:33:09+08:00。 -
date()
:返回date部分 -
time()
:返回time部分脆侮,tzinfo設(shè)置為None锌畸。(另有timetz()方法返回有相同tzinfo的time()) -
isoformat(sep)
:返回標(biāo)準(zhǔn)日期時(shí)間格式,傳入?yún)?shù)sep可設(shè)置日期和時(shí)間的分隔符他嚷,默認(rèn)為'T':1973-11-29T21:33:09蹋绽。 -
ctime()
:返回格式為:Sat Sep 8 00:00:00 2018 -
strftime(format)
:把日期按照f(shuō)ormat指定的格式進(jìn)行格式化芭毙,具體的格式化符號(hào)與date類(lèi)中介紹的相同。 -
strptime(date_string,format)
:將字符串格式轉(zhuǎn)換為日期格式卸耘,具體的格式化符號(hào)與date類(lèi)中介紹的相同退敦。 -
replace()
:傳入對(duì)應(yīng)的參數(shù),返回新的日期時(shí)間蚣抗。
timedelta類(lèi)
timedelta類(lèi)代表兩個(gè)datetime對(duì)象之間的時(shí)間差毛嫉。
構(gòu)造函數(shù)
__new__(days=0, seconds=0, microseconds=0,milliseconds=0, minutes=0, hours=0, weeks=0)
:默認(rèn)的構(gòu)造函數(shù)糙俗,創(chuàng)建timedelta類(lèi)的對(duì)象時(shí)直接傳入相應(yīng)參數(shù)即可返回對(duì)應(yīng)單位的時(shí)間差。
方法
- 支持兩個(gè)timedelta對(duì)象之間的加、減操作迄汛。
- 支持對(duì)一個(gè)timedelta進(jìn)行取正休偶、取負(fù)换途、取絕對(duì)值等操作咬荷。
- 支持兩個(gè)timedelta對(duì)象之間的比較。
- 支持一個(gè)timedelta對(duì)象乘以迷捧、除以一個(gè)整數(shù)的操作
tzinfo類(lèi)
tzinfo類(lèi)是一個(gè)虛擬基類(lèi)织咧,代表時(shí)區(qū)(time zone),創(chuàng)建子類(lèi)時(shí)必須重寫(xiě)name()漠秋,utcoffset()笙蒙,dst()這三個(gè)方法。