2013-03-18 40 views
-1

我得到起始日期是這樣的:start_date1 = datetime.datetime.utcnow().replace(tzinfo=utc)如何在Django/python中減去這兩個日期?

,並通過END_DATE作爲這樣的功能參數:

a(datetime.datetime.utcnow().replace(tzinfo=utc)) 

他們都是在start_date and end_date名明杆存儲在數據庫中。

我所試圖做的是減法END_DATE和START_DATE獲得時間:

start_date = [i.start_date for i in b ] 
    end_date = [i.end_date for i in b ] 

我會用這個來減去這兩個日期:t = [i - j for i, j in zip(y, x)]

然而問題是起始日期日期和結束日期返回在unicodes中。我無法再將它們轉換爲日期時間格式。我該怎麼辦?

+0

如果你想在模板上顯示不同,你可以使用'timesince'標籤。 https://docs.djangoproject.com/en/dev/ref/templates/builtins/#timesince – Babu 2013-03-18 07:04:39

+0

Python擁有廣泛的,可識別時區的[timedelta](http://docs.python.org/2/library/datetime。 html#timedelta-objects),這些功能都有詳細記錄。 – 2013-03-18 07:11:47

回答

0

從python中減去另一個日期時間對象的結果是timedelta對象。對象被定義爲從時代(1970年1月1日的00:00:00)開始的一段時間。從另一個減去一個datetime無法返回新的datetime對象(因爲它不能相對於Epoch),你會得到什麼只是一段時間。這是一個timedelta

docs中有很多細節。

+0

我知道。但是,start_date和end_date從unicode中返回的數據庫不能被減去。 – pynovice 2013-03-18 07:16:29

+0

然後,在計算之前,您需要將其轉換回日期時間對象。你會想使用strptime函數 - http://docs.python.org/2/library/time.html#time.strptime – 2013-03-18 07:22:38

+0

http://stackoverflow.com/questions/466345/converting-string-into-約會時間 – 2013-03-18 07:30:24