前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 中的日期操作:加几天和减几天

Python 中的日期操作:加几天和减几天

作者头像
不止于python
发布2023-11-15 15:54:44
2980
发布2023-11-15 15:54:44
举报
文章被收录于专栏:不止于python

废话不多说, 直接从用例开始吧!!!

用例

当前时间加几天和减几天:

Python 中的日期操作可以使用 datetime 模块 和 timedelta 对象来完成。

代码语言:javascript
复制
# -*- coding: utf-8 -*-
# @Author: Mehaei
# @Date:   2023-11-11 14:31:27
# @Last Modified by:   Mehaei
# @Last Modified time: 2023-11-11 14:31:37
from datetime import datetime, timedelta

# 获取当前日期
current_date = datetime.now()

# 加几天
days_to_add = 5
new_date_after_addition = current_date + timedelta(days=days_to_add)

# 减几天
days_to_subtract = 3
new_date_after_subtraction = current_date - timedelta(days=days_to_subtract)

print("当前日期:", current_date)
print(f"加 {days_to_add} 天后的日期:", new_date_after_addition)
print(f"减 {days_to_subtract} 天后的日期:", new_date_after_subtraction)

时间字符串操作加减:

大多数情况,都需要将一个时间字符串进行日期操作。以下是一个示例,展示如何将时间字符串加上或减去几天:

代码语言:javascript
复制
# -*- coding: utf-8 -*-
# @Author: Mehaei
# @Date:   2023-11-11 14:31:27
# @Last Modified by:   Mehaei
# @Last Modified time: 2023-11-11 14:34:47
from datetime import datetime, timedelta

# 初始时间字符串
date_string = "2023-11-01"

# 将时间字符串解析为日期对象
date_object = datetime.strptime(date_string, "%Y-%m-%d")

# 加几天
days_to_add = 7
new_date_after_addition = date_object + timedelta(days=days_to_add)

# 减几天
days_to_subtract = 3
new_date_after_subtraction = date_object - timedelta(days=days_to_subtract)

print("初始日期字符串:", date_string)
print(f"加 {days_to_add} 天后的日期:", new_date_after_addition)
print(f"减 {days_to_subtract} 天后的日期:", new_date_after_subtraction)

这个示例会将时间字符串解析为日期对象,然后使用 timedelta 对象执行加减操作。

封装一下代码

代码语言:javascript
复制
# -*- coding: utf-8 -*-
# @Author: Mehaei
# @Date:   2023-11-11 14:31:27
# @Last Modified by:   Mehaei
# @Last Modified time: 2023-11-11 14:46:05
from datetime import datetime, timedelta


def dateOperations(date=None, timedelta_kwargs=None):
    """
    日期操作工具
    :param date: datetime or date str
    :param timedelta_kwargs: date operations kwargs
    """
    if timedelta_kwargs and not isinstance(timedelta_kwargs, dict):
        raise ValueError("参数错误")
    if date:
        if isinstance(date, str):
            # 将时间字符串解析为日期对象
            date = datetime.strptime(date, "%Y-%m-%d")
        elif isinstance(date, datetime):
            pass
        else:
            raise TypeError("日期类型错误")
    else:
        date = datetime.now()
    new_date_after_addition = date + timedelta(**timedelta_kwargs)
    return str(new_date_after_addition)


# 模块使用
# 使用当前时间
print(f"当前时间: {str(datetime.now())[:10]} +3天 = :", dateOperations(timedelta_kwargs={"days": 3}))
print(f"当前时间: {str(datetime.now())[:10]} -3天 = :", dateOperations(timedelta_kwargs={"days": -3}))


# 指定日期字符串
print(f"时间: 2023-11-01 +3天 = :", dateOperations("2023-11-01", timedelta_kwargs={"days": 3}))
print(f"时间: 2023-11-01 +3天 = :", dateOperations("2023-11-01", timedelta_kwargs={"days": -3}))

输出

代码语言:javascript
复制
当前时间: 2023-11-11 +3天 = : 2023-11-14 14:46:05.865698
当前时间: 2023-11-11 -3天 = : 2023-11-08 14:46:05.865731
时间: 2023-11-01 +3天 = : 2023-11-04 00:00:00
时间: 2023-11-01 +3天 = : 2023-10-29 00:00:00
[Finished in 0.1s]

又完了

这个小操作在日常开发中经常用到, 所以记录一下, 随便给封装一下, 下次用的时候可以直接cv

日期差计算

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 不止于python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 废话不多说, 直接从用例开始吧!!!
  • 用例
  • 封装一下代码
  • 又完了
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档