利用datetime模塊計算兩個時間差(天數、小時數、秒、毫秒)
python中通過datetime模塊可以很方便的計算兩個時間的差,datetime的時間差單位可以是天、小時、秒,甚至是微秒,下面我們就來詳細看下datetime的強大功能:
from datetime import datetime
a=datetime.now()
b=datetime.now()
>>>a
>>>datetime.datetime(2015, 4, 7, 4, 30, 3, 628556)
>>>b
>>>datetime.datetime(2015, 4, 7, 4, 34, 41, 907292)
>>>str(a) #字符串的轉換,用戶儲存到文本或者數據庫
'2015-04-07 04:30:03.628556'
>>>datetime.strptime(str(a),"%Y-%m-%d %H:%M:%S.%f")
datetime.datetime(2015, 4, 7, 4, 30, 3, 628556)
>>> (b-a)
Out: datetime.timedelta(0, 278, 278736)
>>>(b-a).seconds #時間差的計算,單位爲秒
278
使用datetime模塊可以輕鬆解決相差天數,相差秒數,相差小時數問題:
#計算相差天數
>>> import datetime
>>> d1 = datetime.datetime(2005, 2, 16)
>>> d2 = datetime.datetime(2004, 12, 31)
>>> (d1 - d2).days
47
>>> import datetime
>>> d1 = datetime.date(2005, 2, 16)
>>> d2 = datetime.date(2004, 12, 31)
>>> (d1 - d2).days
47
#計算相差秒數
>>>import datetime
>>>starttime = datetime.datetime.now()
>>>endtime = datetime.datetime.now()
>>>print (endtime - starttime).seconds
#計算當前時間向後10小時的時間。
>>> d1 = datetime.datetime.now()
>>> d3 = d1 + datetime.timedelta(hours=10)
>>> d3.ctime()
datetime可以查看:天數(day),小時數(hour),星期幾(weekday())等; timedelta可以查看:天數(days),秒數(seconds)等。
python自定義函數計算兩個日期之間的天數、月數相差
自定義函數1
import datetime
def days(str1,str2):
date1=datetime.datetime.strptime(str1[0:10],"%Y-%m-%d")
date2=datetime.datetime.strptime(str2[0:10],"%Y-%m-%d")
num=(date1-date2).days
return num
def months(str1,str2):
year1=datetime.datetime.strptime(str1[0:10],"%Y-%m-%d").year
year2=datetime.datetime.strptime(str2[0:10],"%Y-%m-%d").year
month1=datetime.datetime.strptime(str1[0:10],"%Y-%m-%d").month
month2=datetime.datetime.strptime(str2[0:10],"%Y-%m-%d").month
num=(year1-year2)*12+(month1-month2)
return num
輸入days(‘2018-04-23 08:18:09’,‘2017-03-21 10:19:33’) ,返回398
輸入months(‘2018-01-23 08:18:09’,‘2017-03-21 10:19:33’),返回10
自定義函數2
def monthdelta(d1, d2):
delta = 0
while True:
mdays = monthrange(d1.year, d1.month)[1]
d1 += timedelta(days=mdays)
if d1 <= d2:
delta += 1
else:
break
return delta
傳入兩個datetime.date的時間