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

AKH*_*HEW 7 python

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

bak*_*kal 20

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

标准库中有一个函数 calendar.monthrange(year, month)

>>> import calendar
>>> calendar.monthrange(2016, 3)
(1, 31)
Run Code Online (Sandbox Code Playgroud)

小心,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)
Run Code Online (Sandbox Code Playgroud)

字符串格式

>>> first_day.strftime('%d-%m-%Y')
'01-03-2016'
>>> last_day.strftime('%d-%m-%Y')
'31-03-2016'
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用`date.today().replace(day = 1)`轻松获得当月的第一个日期. (7认同)
  • 是的,`monthrange`更有趣的用途是最后一天 (2认同)