如何在python中获取当月的第一天和最后一天

时间:2016-03-22 13:13:06

标签: python

我正在编写一个SQL查询来获取python中当前月份的第一个日期和最后一个日期之间的可用数据。为此,我如何获得当月的第一个和最后一个日期。 (在stackoverflow中已经提出的问题只处理结束日期。我也希望答案为日期字段,如01-03-2016或31-03-2016

1 个答案:

答案 0 :(得分:18)

  

如何在python中获取当月的第一天和最后一天

标准库calendar.monthrange(year, month)

中有一个功能
>>> import calendar
>>> calendar.monthrange(2016, 3)
(1, 31)

小心monthrange 不会返回第一天和最后一天的日期,但会返回该月第一天的工作日和天数月份,指定的年份和月份。

所以要从中获取第一个和最后一个日期对象:

>>> _, num_days = calendar.monthrange(2016, 3)
>>> first_day = datetime.date(2016, 3, 1)
>>> last_day = datetime.date(2016, 3, num_days)
>>> first_day
datetime.date(2016, 3, 1)
>>> last_day
datetime.date(2016, 3, 31)

字符串格式

>>> first_day.strftime('%d-%m-%Y')
'01-03-2016'
>>> last_day.strftime('%d-%m-%Y')
'31-03-2016'