博客翻译自:https://www.mytecbits.com/internet/python/first-day-of-the-month
Python 没有直接地方法获取某月的第一天,但只需要一些简单的代码逻辑,就可以实现该功能:
方法一
data.replace()
:用某值,代替 datetime 模块中,datetime 对象的某一部分。
from datetime import datetime
given_date = datetime.today().date()
print('今天的日期: ', given_date)
# 用 1 代替日期中的 天
first_day_of_month = given_date.replace(day=1)
print("\nFirst day of month: ", first_day_of_month, "\n")
方法二
datetime
模块下的 timedelta
用于找出某日期,与其所在月的第一天的差值天数,从而就能够用当天的日期,与本月第一天的时间差,计算出本月第一天:
from datetime import datetime, timedelta
give_date = datetime.today().date()
first_day_of_month = given_date - timedelta(days=int(given_date.strftime("%d"))-1)
print("\nFirst day of month: ", first_day_of_month, "\n")
方法三
第三个方法可以用 strftime
获取,只需要修改一下参数,即可获得本月的第一天:
from datetime import datetime, timedelta
given_date = datetime.today().date()
first_day_of_month = given_date.strftime("%Y-%m-01")
print("\nFirst day of month: ", first_day_of_month, "\n")
利用 Python 找出某月的最后一天
在 calendar 模块中,有一叫 monthrange 的方法,用年份、月份作为输入,并返回本月的第一天,以及该月份的总天数。
from calendar import monthrange
from datetime import datetime
def last_day_of_month(date_value):
return date_value.replace(day = monthrange(date_value.year, date_value.month)[1])
given_date = datetime.today().date()
print("\nGiven date:", given_date, " --> Last day of month:", last_day_of_month(given_date))
given_date = datetime(year=2008, month=2, day=1).date()
print("\nGiven date:", given_date, " --> Last day of month:", last_day_of_month(given_date))
given_date = datetime(year=2009, month=2, day=1).date()
print("\nGiven date:", given_date, " --> Last day of month:", last_day_of_month(given_date), "\n")