Python之時間處理
一.關於時間幾種常用的處理方法(time包和datetime包)
(1)引入time包,import time
1.獲取從1970年到現在的秒數,至於為什麼從1970年開始這裡就不過多闡述了(我不會告訴你其實我也不知道)
timeLine = time.time()
print(timeLine)
輸出結果:1530530746.2807066
這串數字的意思是這樣的:
小數點前代表自1970年到現在過了多少年,1530530746/60/60/24/365=48.532811
現在自1970年已經過去了48.5年了
2.獲取當前的時間(以計算機的時間為準),time.localtime方法
time1 = time.localtime()
print(time1)
輸出結果:
time.struct_time(tm_year=2018, tm_mon=7, tm_mday=2, tm_hour=19, tm_min=42, tm_sec=47, tm_wday=0, tm_yday=183, tm_isdst=0)
3.獲取從1970年開始往後制定的秒數所對應的時間
time2 = time.localtime(1530400000)
print(time2)
輸出結果:
time.struct_time(tm_year=2018, tm_mon=7, tm_mday=1, tm_hour=7, tm_min=6, tm_sec=40, tm_wday=6, tm_yday=182, tm_isdst=0)
4.設定自定義時間,我們一般看到的時間格式為 2018-7-2 20:00:00,所以我們修改格式為我們常看到的這種
time3 = time.strftime('%y-%m-%d %H:%M:%S',
time.localtime()
)
print(time3)
輸出結果:18-07-02 20:01:36
(2)引入datetime包,import datetime
1.獲取現在的時間,today方法和now方法,兩者用法相同
date1 = datetime.datetime.today() print(date1) date2 = datetime.datetime.now() print(date2)
輸出結果:2018-07-02 20:06:39.414018
2018-07-02 20:06:39.414017,這個結果不需要轉換就自動是我們常見的時間格式
2.strftime函式,作用為日期格式和字串格式的相互轉換
%y 將日期格式下的年份轉換成字串
%m 轉換月份 %d 轉換天數
date3 = date2.strftime('%y year %m month %d day')
print(date3.replace('year', '年').replace('month', '月'))
輸出結果:18 年 07 月 02 day
3.datetime.timedelta函式,引數為時間增量,這個函式可以被加減,引數為被加減的時間
date4 = datetime.timedelta(days=1, hours=12)
print(date4)
date5 = datetime.datetime.now() + date4
print(date5)
輸出結果:1 day, 12:00:00
2018-07-04 08:06:39.414017 ,這個結果是我現在的時間加1天12小時後的時間
4.只獲取當前的日期或小時數
date6 = datetime.datetime.today()
date7 = date6.date()
print(date7)
date8 = date6.time()
print(date8)
輸出結果:2018-07-02
20:06:39.414018
二.Python中自帶的日曆模組
匯入日曆包,import calendar
iterweekdays函式,itermonthdays函式,itermonthdays2函式,itermonthdates函式,這些都需要用for迴圈遍歷的出
cal1 = cal.iterweekdays()
for x in cal1:
print(x)
輸出結果:0 1 2 3 4 5 6,從0-7代表星期一到星期日
itermonthdays函式,引數為年月,返回值為日曆格式下引數月的日期
itermonthdays2函式,引數為年月,返回值有2個值,值一:表示是否屬於本月,否,輸出0,是,輸出本月日期
值二:本月日期對應的星期
itermonthdates函式,引數為年月,返回值為指定月份日曆中的年月日
獲取文字格式下的日曆
calen = calendar.TextCalendar()
calen.prmonth(theyear=2018, themonth=7)
calen.pryear(theyear=2019)