【Python】常见的时间操作(时间区间、时间相加减、指定年月天数等。。。

news/2025/4/1 13:31:01/

在这里插入图片描述

前言

记录在Python中使用的时间操作,方便以后查找。

在使用Python中,常会遇到关于时间的操作。
虽说每次都能借助搜索引擎找到解决的方法,但好记性不如烂笔头,遂有此文。
暂时记录了笔者所使用过的Python关于时间的操作,
后面若有新增,将更新在本文尾部。


知识点📖📖

以下的释义不够全面,建议点击 点我直达 前往官方网站深入理解。

知识点链接释义
datetime点我直达模块提供用于处理日期和时间的类
pandas.date_rage点我直达获取时间区间
calendar点我直达日历相关函数
dateutil.relativedelta点我直达在这里用于日期的相加减

实现

当前年月日

获取当天的年月日时分秒,属于是出现频次最高的。

from datetime import datetime# 当前年月日时分秒
print(datetime.today())  # 2023-01-24 12:14:44.124608
# 今日年月日
print(datetime.today().date())  # 2023-01-24
# 当前年份
print(datetime.today().year)  # 2023
# 当前月份
print(datetime.today().month)  # 1
# 当前日期
print(datetime.today().day)  # 24

时间区间

获取时间区间

用于获取两个日期之间的所有日期

from pandas import date_range# 2023-01-01到 2024-01-01的时间区间
date_list = date_range(start='2023-01-01', end='2024-01-01')
# 时间区间的天数
print(date_list.__len__()) # 366
# 打印时间区间
print(date_list)

代码运行结果如下图所示:

在这里插入图片描述

指定日期是否在时间区间内

用于判断指定日期是否存在与某个时间区间内

from datetime import date
from pandas import date_range# 2023-01-01到 2024-01-01的时间区间
date_list = date_range(start='2023-01-01', end='2024-01-01')
# 构建时间 2023-10-01
build_date = date(2023, 10, 1)
# 判断指定日期是否在时间区间里面
print(build_date in date_list.date)	# True

获取指定年月的天数

返回工作日 (0-6 ~ Mon-Sun) 和年、月的天数 (28-31)的元组。一般来说,我们只关心第二个值

from calendar import monthrangeprint(monthrange(2023, 1))  # (6, 31)

时间相加减

关于时间的相加减,也是在日期计算时候常常会有的操作。

相减

这里的 today 是:2022-01-24

from datetime import datetime
from dateutil.relativedelta import relativedeltatoday = datetime.today().date()
print(today)  # 2023-01-24# 年份 -1
print(today - relativedelta(years=+1))  # 2022-01-24
# 月份 -1
print(today - relativedelta(months=+1))  # 2022-12-24
# 日 -1
print(today - relativedelta(days=+1))  # 2023-01-23
# 时分秒的减法同理
...

代码运行结果如下图所示:

在这里插入图片描述

相加

时间相加的操作和时间相减是极其相似的。

from datetime import datetime
from dateutil.relativedelta import relativedeltatoday = datetime.today().date()
print(today)  # 2023-01-24# 年份 -1
print(today + relativedelta(years=+1))  # 2024-01-24
# 月份 -1
print(today + relativedelta(months=+1))  # 2023-02-24
# 日 -1
print(today + relativedelta(days=+1))  # 2023-01-25
# 时分秒的加法同理
...

后话

本次的分享到此结束,
有任何疑问请自行解决~🐱‍🏍🐱‍🏍

文章来源:https://blog.csdn.net/weixin_45081575/article/details/102761994
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/news/19175.html

相关文章

仿牛客论坛项目

代码仓库:https://gitee.com/qiuyusy/community 目录1. Spring在测试类中使用Spring环境Primary的作用PostConstruct PreDestroy导入外部包的Bean2. SpringMVC2.1 HTTP请求响应2.2 SpringMVC原理2.3 Thymeleaf3. Mybatis-Plus4. 开发社区首页(业务)分页工具类4.1 Dao4.2 Servic…

Elasticsearch7.8.0版本入门—— Elasticsearch7.8.0映射操作

目录一、映射的概述二、创建映射的示例2.1、首先,创建索引2.2、然后,再创建好的索引基础上,创建映射2.3、映射属性说明2.4、查看创建的映射2.5、最后,创建文档2.6、根据文档中name属性条件查询文档 理解映射示例2.7、根据文档中se…

KMS加密K8S Secret技术方案研究

容器服务 使用 KMS 进行 Kubernetes 数据源加密-最佳实践-文档中心-腾讯云 (tencent.com) Using a KMS provider for data encryption | Kubernetes Kubernetes密钥管理安全方案和最佳实践-阿里云开发者社区 (aliyun.com)

2.4.4 数值类型的转换

文章目录1.运算时的自转2.运算时的强转3.强转时的精度丢失问题1.运算时的自转 不同数字类型之间的大小关系如下:double > float > long > int > char, short,byte 自转:小类型的数据可以直接赋值给大类型的变量; byte short c…

python爬虫学习笔记-M3U8流视频数据爬虫

M3U8流视频数据爬虫 HLS技术介绍 现在大部分视频客户端都采用HTTP Live Streaming,而不是直接播放MP4等视频文件(HLS,Apple为了提高流播效率开发的技术)。HLS技术的特点是将流媒体切分为若干【TS片段】(比如几秒一段…

【小知识点】如何在 git 中取消 __pycache__ 文件

文章目录如何在 git 中取消 **pycache** 文件CryptographyDeprecationWarning 异常如何在 git 中取消 pycache 文件 如果使用 PyCharm 运行代码,会在 Python 脚本所在目录生成 __pycache__ ,每次提交到 git 都会包含该目录,本篇博客我们要将其…

进阶C语言 第二章-------《进阶指针》 (指针数组、数组指针、函数指针、回调指针)知识点+基本练习题+深入细节+通俗易懂+完整思维导图+建议收藏

绪论 书接上回,通过对数据类型进阶的认识,你肯定对各种数据类型在内存中如何存储有了了解。虽然说,这方面可能对你的编程能力没什么进步。但是,他是一本内功秘籍,当我们遇到了这方面的问题时我们可以知道可能是哪一方面…

【实操案例十】函数操作 实例代码及运行效果图!

任务一:Mini计算器 # 任务一:Mini计算器 def calc(a, b, op):if op :return add(a, b)elif op -:return sub(a, b)elif op *:return mul(a, b)elif op /:if b ! 0:return div(a, b)else:return 0不能为除数!def add(a, b):return a bde…