zl程序教程

您现在的位置是:首页 >  Python

当前栏目

Python获取上个月最后一天的日期

2023-03-07 09:42:07 时间

很多时候我们做当月数据统计都会用到这个时间,但是CSDN我查了,还真没有,所以我就写一篇正好应该能变成唯一搜索。期望能有更多的价值。

目录

Python获取上个月最后一天的日期

返回格式1 

返回格式2

最直接的获取本月第一天

示例Demo:

最有效的示例:

总结


Python获取上个月最后一天的日期

本文测试时间2月14日,需要计算本月所有发布的文章数目。

我们需要遍历所有的文章列表,但是我们需要去截取时间,这个时间不能是当月的1号,因为当月1号也有文章发布,故而我们应该去获取上个月最后一天的日期,并且需要根据格式来输出字符串,一般写法有2种格式(符号自己换,有的时候是【/】有的时候是【-】还有可能是【年月日】)。

返回格式1 

这里两个符号我都处理并输出了,根据自己的需求拿取就行。

import datetime
from datetime import timedelta

now = datetime.datetime.now()
str_index = str(datetime.datetime(now.year, now.month, 1) - timedelta(days=1))[:10]
print(str_index)
str_index = str(datetime.datetime(now.year, now.month, 1) - timedelta(days=1))[:10].replace("-", "/")
print(str_index)

输出效果:

返回格式2

这里是长类型的,有时分秒那种。

import datetime
from datetime import timedelta

now = datetime.datetime.now()
str_index = str(datetime.datetime(now.year, now.month, 1) - timedelta(days=1))
print(str_index)
str_index = str(datetime.datetime(now.year, now.month, 1) - timedelta(days=1)).replace("-", "/")
print(str_index)

效果如下:

最直接的获取本月第一天

有的时候我们还需要获取本月第一天,我在平台上找到了一个示例,但是比较麻烦,我们先来看看啊。

示例Demo:

from datetime import datetime
from datetime import timedelta
import calendar


def getLastDayOfLastMonth():
    d = datetime.now()
    c = calendar.Calendar()

    year = d.year
    month = d.month

    if month == 1:
        month = 12
        year -= 1
    else:
        month -= 1
    days = calendar.monthrange(year, month)[1]
    return (datetime(year, month, 1) + timedelta(days=days)).strftime('%Y-%m-%d %X')

print(getLastDayOfLastMonth())

输出时间:

这个是没有任何问题的,就是代码太长了,我们处理一下。

最有效的示例:

看着代码是不是少了很多很多呢。

import datetime

now = datetime.datetime.now()
str_index = str(datetime.datetime(now.year, now.month, 1))
print(str_index)
str_index = str(datetime.datetime(now.year, now.month, 1)).replace("-", "/")
print(str_index)

输出效果如下。 

总结

月份的第一天,最后一天都是有很多用途的,我们在以后具体的开发过程中需要创建一个专门格式化时间的类来帮助我们获取各种格式的时间。