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

news2024/11/14 13:41:18

在这里插入图片描述

前言

记录在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 monthrange

print(monthrange(2023, 1))  # (6, 31)

时间相加减

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

相减

这里的 today 是:2022-01-24

from datetime import datetime
from dateutil.relativedelta import relativedelta

today = 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 relativedelta

today = 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
# 时分秒的加法同理
...

后话

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人世正道沧桑,她亦奋力向前 --读《李清照传》有感

有一次陪小孩晨读,朗诵诗歌,读到了李清照的《夏日绝句》:“生当作人杰,死亦为鬼雄。至今思项羽,不肯过江东”。这首诗是1129年,李清照在芜湖的乌江县触景生情,有感而作的。这首诗写得大气磅礴&a…

JQuery总结(一)

JQUERY概述: JQUERY和DOM相互转换: 基础选择器: 筛选选择器: show hide toggle方法 jQuery hover方法 jQuery stop()方法 例子:显示、隐藏、切换 button{/* 随着字体大小变化,button跟着变化大小 */font-size: 20px;ba…

【Git】国内代码托管中心码云(Gitee)

9、国内代码托管中心码云(Gitee) 9.1、简介 众所周知,GitHub 服务器在国外,使用 GitHub 作为项目托管网站,如果网速不好的话,严重影响使用体验,甚至会出现登录不上的情况。针对这个情况,大家也可以使用国…

边界框回归 Bounding-Box Regression

文章目录边界框回归(Bounding-Box Regression)一、边界框回归简介二、边界框回归细节三、相关问题思考1. 为什么使用相对坐标差?2. 为什么宽高比要取对数?3. 为什么IoU较大时边界框回归可视为线性变换?边界框回归(Bounding-Box …

协调中心性能大对比:zookeeper是如何解决负载均衡问题的

作为分布式系统的一个长久话题,协调中心的性能是一个很有意思的突破口。 作为java的分布式协调中心,常见的有zookeeper,redis ,memcache等全局性功能的组件,也有MySQL,mongoDB之类的数据库形持久存储。 两…

PyCharm无法打开,提示Internal error错误。

安装LeetCode插件后,重新打开PyCharm后,出现该错误。 删除安装目录下的 plugins 文件夹后,重新打开后,又出现该错误。 重新把回收站的文件夹恢复后,再次打开还是之前那个错误。 尝试了 cmd ,powershell,管…

Python Flask构建微信小程序订餐系统 (五)

🔥 微信小程序登录态 🔥 所谓登录态,就是程序在运行时,能够识别当前用户,能够证明自己的唯一性且合法。 WEB服务器通过浏览器携带的cookie获取session来判断是否是同一用户(或浏览器);Restful服务通过客户端传过来唯一ID,来识别调用用户。 维护登录态的原因 有自身…

行为型模式-模板方法模式

1.概述 在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。 例如&…

机器学习(五):机器学习算法分类

文章目录 机器学习算法分类 一、监督学习 1、回归问题 2、分类问题 二、无监督学习 三、半监督学习 四、强化学习 机器学习算法分类 根据数据集组成不同,可以把机器学习算法分为: 监督学习无监督学习半监督学习强化学习一、监督学习 定义&…

Python初学者看过来啊,老油条来复习

嗨嗨嗨,我又又又又来了 目录 一、Python常用的基本语句 1、format字符串格式化 2、连接字符串 3、if...else条件语句 4、for...in、while循环语句 5、import导入 2.详细介绍 对于初学者来说,想要学好Python语言,必须从最基本的知识开…

为了方便项目打包,我用Node写了个git-tag工具

目录 前言 实现过程 起步 npm全局命令 功能实现 功能验证 代码发布 写在最后 前言 在使用git执行打包操作时,我们常常会根据场景在tag中增加一些标识。 以基准版本为1.0.0为例:软件开发初期可以定义1.0.0-alpha.0,开发阶段是1.0.0-b…

【面试克星】【公式少代码少话多】Vins-Mono预积分相关知识点总结与概述

前言 Vins-Mono预积分相关的公式和代码可以在各个博客中找到。本文将充当一个帮助大家快速理解预积分、中值积分相关概述的角色,带大家理解代码,应对面试。 下面会分成三步,来帮助大家充分理解这个过程。步骤是按照顺序来写的。 中值积分和…

学习MapStruct

概述 MapStruct是一个Java注释处理器,用于生成类型安全的bean映射类。 您要做的就是定义一个映射器接口,该接口声明任何必需的映射方法。在编译期间,MapStruct将生成此接口的实现。此实现使用简单的Java方法调用在源对象和目标对象之间进行映…

<<零入门容器云网络实战>>技术专栏之文章目录

建议: 1、资源 零入门容器云网络实战 链接: https://pan.baidu.com/s/1nPLRkAwjItAHmtEU2T1F4g 提取码: rrpd 2、技术沟通渠道 342498897 3、字体颜色说明 绿色字体&#xff0c; 表示已经发表&#xff0c;可以观看 灰色字体&#xff0c; 表示未发表 4、专栏介绍 1 <<…

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

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

插入排序算法的实现和优化~

插入排序的基本思想&#xff1a; 在一个已排好序的记录子集的基础上&#xff0c;每一步将下一个待排序的记录有序插入到已排好序的记录子集中&#xff0c;直到将所有待排记录全部插入为止 直接插入排序&#xff1a; 直接插入排序是一种最基本的插入排序方法&#xff0c;元素…

离线召回与排序介绍

3.3 离线召回与排序介绍 学习目标 目标 了解召回排序作用知道头条推荐召回排序设计应用 无 3.3.1 召回与排序介绍 召回&#xff1a;从海量文章数据中得到若干候选文章召回集合(数量较多) 排序&#xff1a;从召回集合中读取推荐文章&#xff0c;构建样本特征进行排序过滤筛选…

【SpringCloud21】面试题雪花算法

目录1. 问题2.ID生成规则部分硬性要求3.ID号生成系统的可用性要求4.一般通用方案4.1UUID4. 数据库自增主键5. 基于Redis生成全局id策略6. snowflake6.1 概述6.2 结构6.3 源码6.4 工程落地经验6.4.1 糊涂工具包6.4.2 springboot整合雪花算法1.POM2.核心代码IdGeneratorSnowflake…

ElasticSearch7.6.x 学习笔记

ElasticSearch7.6.x 学习笔记 目录 ElasticSearch概述 ElasticSearch&#xff0c;简称es&#xff0c;es是一个开源的高扩展的分布式全文检索引擎&#xff0c;它可以近乎实时的存储、检索数据。且本身扩展性很好&#xff0c;可以扩展到上百台服务器&#xff0c;处理PB级别的数…

Spring事务、事务隔离级别、事务传播机制

Spring事务和事务传播机制一、为什么需要事务&#xff1f;(回顾)二、Spring中事务的实现2.1 MySQL中的事务使用 (回顾)2.2 Spring编程式事务2.3 Spring 声明式事务2.3.1 Transactional 使用2.3.2 Transactional 作用范围2.3.3 Transactional 参数说明2.3.4 注意事项2.3.4 Trans…