python的datetime和月末

2024-05-09 13:43:27 发布

您现在位置:Python中文网/ 问答频道 /正文

如何创建表示当前月份最后时刻的datetime对象?在


Tags: 对象datetime月份时刻
3条回答
import datetime

def eom(dt):
    sometime_next_month= dt.replace(day=1) + datetime.timedelta(days=31)
    start_of_next_month= sometime_next_month.replace(day=1,hour=0,minute=0,second=0)
    return start_of_next_month - datetime.timedelta(seconds=1)


>>> eom(datetime.datetime(1972, 2, 1, 23, 50, 50))
datetime.datetime(1972, 2, 29, 23, 59, 59)
>>> eom(datetime.datetime(1980, 12, 31))
datetime.datetime(1980, 12, 31, 23, 59, 59)

使用一个简单的技巧:将日期设置为下一个月的第一个月,然后根据需要减去1秒/小时/天。在

selected_date = date(some_year, some_month, some_day)

if selected_date.month == 12: # December
     last_day_selected_month = date(selected_date.year, selected_date.month, 31)
else:
     last_day_selected_month = date(selected_date.year, selected_date.month + 1, 1) - timedelta(days=1)

其中“timedelta(days=1)”可能与下个月和上个月的最后一个时刻不同。在

相关问题 更多 >