python時間處理詳解

pythontab發表於2015-04-08

1.獲取當前時間的兩種方法:


import datetime,time

now = time.strftime("%Y-%m-%d %H:%M:%S")

print now

now = datetime.datetime.now()

print now

2.獲取上個月最後一天的日期(本月的第一天減去1天)


last = datetime.date(datetime.date.today().year,datetime.date.today().month,1)-datetime.timedelta(1)

print last

3.獲取時間差(時間差單位為秒,常用於計算程式執行的時間)


starttime = datetime.datetime.now()

#long running

endtime = datetime.datetime.now()

print (endtime - starttime).seconds


4.計算當前時間向後10個小時的時間

 

d1 = datetime.datetime.now()

d3 = d1 + datetime.timedelta(hours=10)

d3.ctime()


其本上常用的類有:datetime和timedelta兩個。它們之間可以相互加減。每個類都有一些方法和屬性可以檢視具體的值,如 datetime可以檢視:天數(day),小時數(hour),星期幾(weekday())等;timedelta可以檢視:天數(days),秒數 (seconds)等。 


5.python中時間日期格式化符號:


%y 兩位數的年份表示(00-99)

%Y 四位數的年份表示(000-9999)

%m 月份(01-12)

%d 月內中的一天(0-31)

%H 24小時制小時數(0-23)

%I 12小時制小時數(01-12) 

%M 分鐘數(00=59)

%S 秒(00-59)


%a 本地簡化星期名稱

%A 本地完整星期名稱

%b 本地簡化的月份名稱

%B 本地完整的月份名稱

%c 本地相應的日期表示和時間表示

%j 年內的一天(001-366)

%p 本地A.M.或P.M.的等價符

%U 一年中的星期數(00-53)星期天為星期的開始

%w 星期(0-6),星期天為星期的開始

%W 一年中的星期數(00-53)星期一為星期的開始

%x 本地相應的日期表示

%X 本地相應的時間表示

%Z 當前時區的名稱

%% %號本身

附上示例程式碼:

程式碼Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#-*-coding:utf-8-*-   

import datetime, calendar   

  

def getYesterday():   

    today=datetime.date.today()   

    oneday=datetime.timedelta(days=1)   

    yesterday=today-oneday   

   return yesterday   

      

def getToday():   

    return datetime.date.today()     

  

#獲取給定引數的前幾天的日期,返回一個list   

def getDaysByNum(num):   

     today=datetime.date.today()   

     oneday=datetime.timedelta(days=1)       

     li=[]        

    for i in range(0,num):   

        #今天減一天,一天一天減   

         today=today-oneday   

        #把日期轉換成字串   

        #result=datetostr(today)   

         li.append(datetostr(today))   

    return li   

  

#將字串轉換成datetime型別   

def strtodatetime(datestr,format):       

    return datetime.datetime.strptime(datestr,format)   

  

#時間轉換成字串,格式為2008-08-02   

def datetostr(date):     

    return    str(date)[0:10]   

  

#兩個日期相隔多少天,例:2008-10-03和2008-10-01是相隔兩天   

def datediff(beginDate,endDate):   

     format="%Y-%m-%d";   

     bd=strtodatetime(beginDate,format)   

     ed=strtodatetime(endDate,format)       

     oneday=datetime.timedelta(days=1)   

     count=0  

    while bd!=ed:   

         ed=ed-oneday   

         count+=1  

    return count   

  

#獲取兩個時間段的所有時間,返回list   

def getDays(beginDate,endDate):   

     format="%Y-%m-%d";   

     bd=strtodatetime(beginDate,format)   

     ed=strtodatetime(endDate,format)   

     oneday=datetime.timedelta(days=1)   

     num=datediff(beginDate,endDate)+1   

     li=[]   

    for i in range(0,num):   

         li.append(datetostr(ed))   

         ed=ed-oneday   

    return li   

  

#獲取當前年份 是一個字串   

def getYear():   

    return str(datetime.date.today())[0:4]   

  

#獲取當前月份 是一個字串   

def getMonth():   

    return str(datetime.date.today())[5:7]   

  

#獲取當前天 是一個字串   

def getDay():   

    return str(datetime.date.today())[8:10]      

def getNow():   

    return datetime.datetime.now()   

  

       

print getToday()   

print getYesterday()   

print getDaysByNum(3)   

print getDays('2008-10-01','2008-10-05')   

print '2008-10-04 00:00:00'[0:10]   

  

print str(getYear())+getMonth()+getDay()   

print getNow()


相關文章