Python模組知識2:時間日期日曆模組Time、Datetime、Calendar,pythondatetime
1、time模組
時間為什麼從1970年開始:因為Linux系統那一年開始使用;通常由以下幾種方式表示時間:
時間戳記:1970年1月1日之後的秒,即:time.time()可以獲得目前時間戳。
格式化的字串:2014-11-11 11:11,如:time.strftime('%Y-%m-%d'),詳見案例
結構化時間,為元組形式,包含了9個元素:年、日、星期等... 如:time.struct_time(tm_year=2017, tm_mon=5, tm_mday=27, tm_hour=15, tm_min=16, tm_sec=53, tm_wday=5, tm_yday=147, tm_isdst=0) ;
常見用法:
time.time() 返回目前時間的時間戳記
time.ctime() 返回時間的字串格式,如:Sat Dec 30 16:52:39 2017
time.gmtime() 返回結構化時間格式,為格林威治時間
time.localtime() 本地時間,比如中國時間和格林威治時間不一致,形式為結構化格式,
time.mktime() 把結構化時間轉化為時間戳記
time.sleep() 時間停頓
time.strftime() 把結構化時間轉為格式化字元
time.strptime() 把一個時間字串解析為時間元組
案例1:time.time返回目前時間的時間戳記
案例2:time.ctime返回時間的字串格式
案例3:time.gmtime()返回結構化時間格式,為格林威治時間,和本地時間有差異
案例4:結構化時間應用案例,可以分別擷取每一個元素,然後設定為不同的格式
案例5:time.localtime()本地時間,形式為結構化格式,和格林威治時間有差異,差時區
案例6:time.mktime()把結構化時間轉化為時間戳記
案例7:time.sleep()時間停頓
案例8:time.strftime()把結構化時間轉為格式化字元
strftime需要兩個參數,第一個是格式,有大小寫要求,第二個是結構化時間。如果t未指定,將傳入time.localtime()。如果元組中任何一個元素越界,ValueError的錯誤將會被拋出。
python中時間日期格式化符號:
案例9:time.strptime把其他格式轉為結構化格式
2、datetime模組
常用模組:
datetime.date.today()擷取當前日期
datetime.date.fromtimestamp()將時間戳記轉為日期格式
datetime.datetime.now() 返回當前日期和時間,格式為2017-04-20 11:19:59.128461
timetuple() 轉為struct_time
replace() 替換部分資料,replae(yyyy,mm,dd)
案例10:datetime.date.today()擷取當前日期
案例11:將時間戳記轉為日期格式
案例12:datetime.datetime.now() 返回當前日期和時間
案例13:timetuple() 轉為struct_time
案例14:replace() 替換部分資料,replae(yyyy,mm,dd)
案例15:strptime() 字串格式化
案例16:時間加減法
3、Calendar模組
例如列印某月的字元月曆。
星期一是預設的每周第一天,星期天是預設的最後一天。更改設定需調用calendar.setfirstweekday()函數。
常用屬性:
calendar.calendar(year,w=2,l=1,c=6)。列印日曆。
calendar.firstweekday( ) 返回當前每周起始日期的設定。預設情況下,首次載入caendar模組時返回0,即星期一。
calendar.isleap(year),判斷年是否為閏年
calendar.leapdays(y1,y2) 返回在Y1,Y2兩年之間的閏年總數
calendar.monthcalendar(year,month)返回單層嵌套列表。每個子列表為一周數字。Year年month月外的日期都設為0;範圍內的日子都由該月第幾日表示,從1開始。
calendar.monthrange(year,month)返回兩個整數。第一個數為該月第一個日期的日期碼,周一為0,從z第二個至為當月日期數。
calendar.setfirstweekday(weekday) 設定每周的起始日期碼。0(星期一)到6(星期日)。
calendar.timegm(tupletime)和time.gmtime相反:接受一個時間元組形式,返回該時刻的時間戳記
calendar.weekday(year,month,day)返回給定日期的日期碼。0(星期一)到6(星期日)。月份為 1(一月) 到 12(12月)。
案例17:列印日曆:
返回一個多行年曆,3個月一行,間隔距離為c。 每日寬度間隔為w字元。每行長度為21* W+18+2* C。l是每星期行數。
案例18:calendar.firstweekday( ) ,返回預設起始位置
案例19:calendar.isleap(year),判斷年是否為閏年
案例20:calendar.leapdays(y1,y2) 返回在Y1,Y2兩年之間的閏年總數
案例21:列印當月日曆calendar.month(year,month,w=2,l=1)
案例22:calendar.monthcalendar(year,month)返回一個整數的單層嵌套列表
案例23:calendar.monthrange(year,month)返回兩個整數。第一個數為該月第一個日期的日期碼,第二個至為當月日期數。
案例連結:https://pan.baidu.com/s/1o7JgBwu 密碼:mf8r
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。