利用python获取当前日期前后N天或N月日期的方法示例
发布时间 - 2026-01-11 02:33:43 点击率:次前言

最近因为工作原因,发现一个Python的时间组件,很好用分享出来!(忘记作者名字了,在这里先感谢了),下面话不多说,来一起看看详细的介绍吧。
示例代码:
# -*- coding: utf-8 -*-
'''获取当前日期前后N天或N月的日期'''
from time import strftime, localtime
from datetime import timedelta, date
import calendar
year = strftime("%Y", localtime())
mon = strftime("%m", localtime())
day = strftime("%d", localtime())
hour = strftime("%H", localtime())
min = strftime("%M", localtime())
sec = strftime("%S", localtime())
def today():
'''''
get today,date format="YYYY-MM-DD"
'''''
return date.today()
def todaystr():
'''
get date string, date format="YYYYMMDD"
'''
return year + mon + day
def datetime():
'''''
get datetime,format="YYYY-MM-DD HH:MM:SS"
'''
return strftime("%Y-%m-%d %H:%M:%S", localtime())
def datetimestr():
'''''
get datetime string
date format="YYYYMMDDHHMMSS"
'''
return year + mon + day + hour + min + sec
def get_day_of_day(n=0):
'''''
if n>=0,date is larger than today
if n<0,date is less than today
date format = "YYYY-MM-DD"
'''
if (n < 0):
n = abs(n)
return date.today() - timedelta(days=n)
else:
return date.today() + timedelta(days=n)
def get_days_of_month(year, mon):
'''''
get days of month
'''
return calendar.monthrange(year, mon)[1]
def get_firstday_of_month(year, mon):
'''''
get the first day of month
date format = "YYYY-MM-DD"
'''
days = "01"
if (int(mon) < 10):
mon = "0" + str(int(mon))
arr = (year, mon, days)
return "-".join("%s" % i for i in arr)
def get_lastday_of_month(year, mon):
'''''
get the last day of month
date format = "YYYY-MM-DD"
'''
days = calendar.monthrange(year, mon)[1]
mon = addzero(mon)
arr = (year, mon, days)
return "-".join("%s" % i for i in arr)
def get_firstday_month(n=0):
'''''
get the first day of month from today
n is how many months
'''
(y, m, d) = getyearandmonth(n)
d = "01"
arr = (y, m, d)
return "-".join("%s" % i for i in arr)
def get_lastday_month(n=0):
'''''
get the last day of month from today
n is how many months
'''
return "-".join("%s" % i for i in getyearandmonth(n))
def getyearandmonth(n=0):
'''''
get the year,month,days from today
befor or after n months
'''
thisyear = int(year)
thismon = int(mon)
totalmon = thismon + n
if (n >= 0):
if (totalmon <= 12):
days = str(get_days_of_month(thisyear, totalmon))
totalmon = addzero(totalmon)
return (year, totalmon, days)
else:
i = totalmon / 12
j = totalmon % 12
if (j == 0):
i -= 1
j = 12
thisyear += i
days = str(get_days_of_month(thisyear, j))
j = addzero(j)
return (str(thisyear), str(j), days)
else:
if ((totalmon > 0) and (totalmon < 12)):
days = str(get_days_of_month(thisyear, totalmon))
totalmon = addzero(totalmon)
return (year, totalmon, days)
else:
i = totalmon / 12
j = totalmon % 12
if (j == 0):
i -= 1
j = 12
thisyear += i
days = str(get_days_of_month(thisyear, j))
j = addzero(j)
return (str(thisyear), str(j), days)
def addzero(n):
'''''
add 0 before 0-9
return 01-09
'''
nabs = abs(int(n))
if (nabs < 10):
return "0" + str(nabs)
else:
return nabs
def get_today_month(n=0):
'''''
获取当前日期前后N月的日期
if n>0, 获取当前日期前N月的日期
if n<0, 获取当前日期后N月的日期
date format = "YYYY-MM-DD"
'''
(y, m, d) = getyearandmonth(n)
arr = (y, m, d)
if (int(day) < int(d)):
arr = (y, m, day)
return "-".join("%s" % i for i in arr)
if __name__ == "__main__":
print today()
print todaystr()
print datetime()
print datetimestr()
print get_day_of_day(20)
print get_day_of_day(-3)
print get_today_month(-3)
print get_today_month(3)
print get_today_month(19)
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持
# python
# 获取当前日期
# python获取前一天日期
# 获取日期
# Python实现根据日期获取当天凌晨时间戳的方法示例
# 教你用python从日期中获取年、月、日和星期等30种信息
# python如何获取当前系统的日期
# Python实现获取照片拍摄日期并重命名的方法
# django python 获取当天日期的方法
# 在这里
# 这篇文章
# 前日
# 谢谢大家
# 多说
# 很好用
# 期后
# 有疑问
# hour
# min
# sec
# def
# calendar
# date
# year
# timedelta
# day
# DD
# string
# todaystr
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
如何在万网利用已有域名快速建站?
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
EditPlus 正则表达式 实战(3)
如何在Windows环境下新建FTP站点并设置权限?
QQ浏览器网页版登录入口 个人中心在线进入
网站建设保证美观性,需要考虑的几点问题!
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
如何在服务器上三步完成建站并提升流量?
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
Laravel如何创建自定义中间件?(Middleware代码示例)
Bootstrap CSS布局之列表
Java垃圾回收器的方法和原理总结
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
js代码实现下拉菜单【推荐】
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
Python文件流缓冲机制_IO性能解析【教程】
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
郑州企业网站制作公司,郑州招聘网站有哪些?
javascript如何操作浏览器历史记录_怎样实现无刷新导航
如何用好域名打造高点击率的自主建站?
javascript基于原型链的继承及call和apply函数用法分析
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
如何在万网开始建站?分步指南解析
javascript中的try catch异常捕获机制用法分析
敲碗10年!Mac系列传将迎来「触控与联网」双革新
怎么用AI帮你为初创公司进行市场定位分析?
如何在IIS中新建站点并解决端口绑定冲突?
java中使用zxing批量生成二维码立牌
Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件
网易LOFTER官网链接 老福特网页版登录地址
JS碰撞运动实现方法详解
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
如何获取上海专业网站定制建站电话?
如何在IIS中配置站点IP、端口及主机头?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
JavaScript实现Fly Bird小游戏
如何快速生成高效建站系统源代码?
如何选择可靠的免备案建站服务器?

