
废话不多说, 直接从用例开始吧!!!
用例
当前时间加几天和减几天:
Python 中的日期操作可以使用 datetime 模块 和 timedelta 对象来完成。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| # -*- 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)
|
时间字符串操作加减:
大多数情况,都需要将一个时间字符串进行日期操作。以下是一个示例,展示如何将时间字符串加上或减去几天:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| # -*- 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 对象执行加减操作。

封装一下代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| # -*- 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}))
|
输出
1 2 3 4 5 6
| 当前时间: 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
日期差计算
