You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从指定Timestamp获取下月月末的Timestamp?

获取指定日期下月月末的方法

针对你给出的日期 Timestamp('2020-10-17 00:00:00'),可以通过Pandas的内置工具快速获取下月月末日期,以下是几种简单方案:

方案一:使用周期转换(最简洁)

利用Pandas的to_period将日期转换为月度周期,加1个月后再获取周期的结束时间,最后归一化到午夜:

import pandas as pd

ts = pd.Timestamp('2020-10-17 00:00:00')
next_month_end = (ts.to_period('M') + 1).end_time.normalize()
print(next_month_end)
# 输出:Timestamp('2020-11-30 00:00:00')

方案二:使用日期偏移量

先给原日期加1个月,再用MonthEnd偏移量调整到当月月末:

next_month_end = (ts + pd.DateOffset(months=1)) + pd.offsets.MonthEnd(0)
print(next_month_end)
# 输出:Timestamp('2020-11-30 00:00:00')

关于你使用rrule的问题

你之前的代码用rrule(MONTHLY)生成的是每月同一天的日期(比如9月17日、10月17日),所以无法直接得到月末日期。如果一定要用rrule,可以在生成日期后调整到当月月末:

import pandas as pd
from datetime import date
from dateutil.rrule import rrule, MONTHLY
from dateutil.relativedelta import relativedelta

start_date = date(2020, 9, 17)
end_date = date(2020, 10, 31)

for d in rrule(MONTHLY, dtstart=start_date, until=end_date):
    # 将日期调整为当月月末
    end_of_month = d + relativedelta(day=31)
    t = pd.Timestamp(end_of_month)
    print(t)
# 输出:2020-09-30 00:00:00、2020-10-31 00:00:00

不过相比之下,Pandas的内置方法更直接高效,更适合处理这类日期计算需求。

内容的提问来源于stack exchange,提问作者Masoud180190

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 17:20:42