python之時(shí)間模塊 time & datetime & calendar簡(jiǎn)介

python處理時(shí)間的有兩個(gè)模塊, 分別是time , datetime , calendar

1> time


print(time.gmtime())
print(time.localtime()) #當(dāng)前時(shí)間 返回的是一個(gè)time.struct_time 對(duì)象
print(time.time()) #返回的是當(dāng)前時(shí)間的時(shí)間戳
localtime = time.localtime()
print("tm_gmtoff={}".format(localtime.tm_gmtoff))

print("tm_hour={}".format(localtime.tm_hour))  #時(shí)

print("tm_isdst={}".format(localtime.tm_isdst)) #是否夏令時(shí)

print("tm_mday={}".format(localtime.tm_mday)) #ri

print("tm_min={}".format(localtime.tm_min)) #分

print("tm_mon={}".format(localtime.tm_mon)) #月

print("tm_sec={}".format(localtime.tm_sec)) #秒

print("tm_wday={}".format(localtime.tm_wday)) #周幾

print("tm_yday={}".format(localtime.tm_yday)) #一年中的第幾天

print("tm_year={}".format(localtime.tm_year)) #年

print("tm_zone={}".format(localtime.tm_zone))

ts = time.mktime(localtime) #通過(guò)給定的時(shí)間得到時(shí)間戳
print(ts)

#格式化輸出時(shí)間
print(time.strftime("%Y/%m/%d",localtime)) # 返回的是時(shí)間字符串

timeStr = "2017-08-05 23:00:00"
print(time.strptime(timeStr,"%Y-%m-%d %X")) #返回的是一個(gè)time.struct_time 對(duì)象

2> datetime

#在datetime 模塊先有幾個(gè)子模塊 分別是:
#date : 處理年月日
#time : 處理時(shí)分秒,微妙
#datetime : 處理年月日,時(shí)分秒, 微妙

#分別查看一下每模塊的屬性和方法
print('----------------date模塊--------------------')
print(dir(datetime.date))
print('----------------time模塊--------------------')
print(dir(datetime.time))
print('----------------datetime模塊----------------')
print(dir(datetime.datetime))

# 在這里主要看一下datetime 這個(gè)模塊
from datetime import datetime

print(datetime.MINYEAR,datetime.MAXYEAR)  #最大年份和最小年份, 可以自己制定 默認(rèn)說(shuō)9999, 1 
datetime.MAXYEAR = 100000
print(datetime.MAXYEAR)


#查看datetime所屬的類(lèi)型
print(type(datetime)) #發(fā)現(xiàn)是一個(gè)type類(lèi)型
#這里記錄一下 type 和 Object 的關(guān)系
#Object 是所有父子關(guān)系(繼承關(guān)系)的頂端, 所有的數(shù)據(jù)類(lèi)型的父類(lèi)都是它,而type是所有類(lèi)型實(shí)例關(guān)系
#的頂端,所有對(duì)象都是它的實(shí)例
#可以這么理解, Object 是一個(gè)type  即Object是type的一個(gè)實(shí)例
#以上理解只是個(gè)人理解, 如果有錯(cuò)誤的地方,請(qǐng)予以糾正


# 獲取當(dāng)前時(shí)間
currentTime = datetime.now()  #返回的是一個(gè)datetime.datetime 對(duì)象
print(currentTime) 

print(currentTime.strftime('%x %X')) #格式化輸出當(dāng)前時(shí)間

#獲取當(dāng)前時(shí)間的時(shí)間戳
print(currentTime.timestamp())

d=datetime(2017,8,6,11,52,30)

#對(duì)指定的時(shí)間進(jìn)行自定義格式輸出
# %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)本身
     
print(d.strftime("%Y-%m-%d %p"))  #2017-08-06 AM  一個(gè)字符串

#顯示英文格式
print(d.ctime()) #Sun Aug  6 11:52:30 2017

#顯示日歷 (年, 該年中的第幾周, 周幾)
print(d.isocalendar())  #(2017, 31, 7) 返回一個(gè)元組, 使用時(shí)需要定向取值

print(datetime.today())

3> calendar

#獲取某一年的日歷
print(calendar.calendar(2017))

#獲取某月的日歷
print(calendar.month(2017, 8))

#判斷某一年是否是閏年
print(calendar.isleap(2017))

#檢測(cè)兩個(gè)年份之間閏年的個(gè)數(shù)
print(calendar.leapdays(1990,2017))

#將日歷轉(zhuǎn)化為html 格式, 可以設(shè)置 年月日, 星期等
cal = calendar.HTMLCalendar(calendar.MONDAY)
print(cal)
print(cal.formatyear(2017))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容