在Python中,我怎麼能在以下日期之前確定的月份:日之前確定一個月 - Python的
t = datetime.date(2014, 01, 03)
這是這樣,其結果必然是:
2013-12-03
在Python中,我怎麼能在以下日期之前確定的月份:日之前確定一個月 - Python的
t = datetime.date(2014, 01, 03)
這是這樣,其結果必然是:
2013-12-03
如果你想知道昨天日期:
from datetime import date, timedelta
date1 = date(2014, 1, 3)
date2 = date1 - timedelta(days=1)
print date2.strftime('%y, %m, %d')
如果你想知道之前的日期起計1月份:
from datetime import timedelta, date
def subtract_one_month(dt0):
dt1 = dt0.replace(days=1)
dt2 = dt1 - timedelta(days=1)
dt3 = dt2.replace(days=1)
return dt3
date1 = date(2014, 1, 3)
date2 = subtract_one_month(date1)
print date2.strftime('%y, %m, %d')
它發現前一天(*昨天*)。很難理解OP想要什麼。我把它解釋爲:OP想要[前一個*月*](http://stackoverflow.com/a/29480880/4279)。無關:您的代碼中存在名稱爲'datetime','date'的問題(修復導入,爲變量使用不同的名稱)。 – jfs
你可以做什麼,而不是每個時間,年,月和日的度量單獨的變量。然後,你可以使用一個if語句,當月份是1,年份回到1,月份設置爲12時。最後,只需將這些數字插入括號中即可。
year = 2014
month = 1
day = 3
if month == 1:
year -= 1
month = 12
else:
month -= 1
t = date.datetime(year, month, date)
要查找以前相對於給定日期的月份:
#!/usr/bin/env python
from datetime import date, timedelta
t = date(2014, 1, 3)
print(t.replace(day=1) - timedelta(1)) # the last day of the previous month
# -> 2013-12-31
import dateutil.relativedelta
t - dateutil.relativedelta.relativedelta(months=1)
那麼,什麼是'datetime.date(2014,3,31)'預期的結果? –
你的例子減去一整年,而不是一個月。 –
@MarkRansom減去一個月,即一月,應該返回前一年的12月份 – NorthernStars