1. 程式人生 > >Python之時間處理

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)