python - 返回一年中特定日期的上个月
问题描述
我有以下代码用于计算日期的上个月:
from dateutil import parser, relativedelta
import datetime
@staticmethod
def get_previous_month(date):
previous_month = date - relativedelta.relativedelta(months=1)
return previous_month
我认为这行得通,但我认为它没有考虑到年份。
我将 datetime 对象作为参数传递。
datetime.date(1990, 4, 30)
上个月应该是:
datetime.date(1990, 3, 31)
但它返回:
datetime.date(1990, 3, 30)
我也尝试指定年份但无济于事。
解决方案
好吧,datetime.date(1990, 4, 30)
IS 3 的前一个月,所以图书馆实际上是正确的返回datetime.date(1990, 3, 30)
。
问题出在问题中-您真正想要的是上个月的最后一天。
def get_last_day_of_previous_month(d):
return d.replace(day=1) - datetime.timedelta(days=1)
推荐阅读
- python - 如何使用 Selenium 单击此链接?
- reactjs - 使用 React,在使用 react-transition-group 时,在 StrictMode 中不推荐使用 findDOMNode 作为警告
- jenkins - 在 Bitbucket Server 中管理 webhook
- kubernetes - helm 可以在单次运行中安装多组件应用程序吗?
- react-admin - 如何
和 在 react-admin 中自动向 Input 组件注入资源道具? - c# - 实体框架:自动计算成员
- php - 在 PHP 中比较字符串和 HASH_HMACH
- razor-pages - 如何从子剃须刀页面获取值返回到父剃须刀页面
- embedded - I2S 数据结构(IC 间声音)
- amazon-web-services - 如何降低 AWS 上审计数据的 RDS 成本