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))