2011-09-08 45 views
1

我使用的日期时间,我有:如何获取日期范围现在到月底?

delta = ((datetime.date.today() + datetime.timedelta(days=1)) - datetime.timedelta(???)).isoformat() 

我需要更换???每月的一天结束。

怎么办?

回答

3
import datetime 

d = datetime.date(2013,12,8) 

last_day = datetime.date(d.year, (d.month+1)%12, 1) - datetime.timedelta(1,0,0) 
5

要计算月末结束日期,请采用当前月份的第一个月份,添加1个月并减去1天。例如,对于9月28日,你会拥有

1 September + 1 month = 1 October 
1 October - 1 day = 30 September. 
+0

但使用日期时间热呢?我有变量中的日期时间格式数据 – Nips

0

要正确大约有新的一年日期处理,我发现dateutil.relativedelta是一个更好的选择。请参阅How to increment datetime month in python

import datetime 
from dateutil.relativedelta import relativedelta 

d = datetime.date(2013,12,8) 

last_day = datetime.date(d.year, d.month, 1)+relativedelta(months=1, days=-1)