Python基础学习之datetime模块

在Python编程中,处理日期和时间是一个常见的需求。Python的datetime模块提供了丰富的类和方法,用于表示和操作日期、时间、时间间隔等。本文将详细介绍Python的datetime模块,并给出一些实用的示例。

1. datetime模块概览

datetime模块是Python标准库中的一部分,它定义了一些类来表示和操作日期和时间。这些类包括:

  • datetime.datetime:表示一个具体的日期和时间(年、月、日、时、分、秒、微秒)。
  • datetime.date:表示一个具体的日期(年、月、日)。
  • datetime.time:表示一个具体的时间(时、分、秒、微秒),不包含日期信息。
  • datetime.timedelta:表示两个日期或时间之间的时间差。
  • datetime.timezone(在Python 3.2+中):表示时区信息。

2. datetime类的使用

2.1 获取当前日期和时间

你可以使用datetime.now()函数来获取当前的日期和时间

from datetime import datetime  now = datetime.now()  
print(now)  # 输出类似:2023-07-19 15:30:45.123456
2.2 创建特定的日期和时间

你可以使用datetime类的构造函数来创建特定的日期和时间:

from datetime import datetime  specific_time = datetime(2023, 7, 19, 10, 30, 0)  
print(specific_time)  # 输出:2023-07-19 10:30:00.000000

 

2.3 格式化日期和时间

你可以使用strftime()方法将日期和时间格式化为字符串:

from datetime import datetime  now = datetime.now()  
formatted_time = now.strftime("%Y-%m-%d %H:%M:%S")  
print(formatted_time)  # 输出类似:2023-07-19 15:30:45

 

%Y 表示四位数的年份,%m 表示月份,%d 表示日期,%H 表示小时(24小时制),%M 表示分钟,%S` 表示秒。

3. timedelta类的使用

timedelta类用于表示两个日期或时间之间的时间差。你可以使用它来添加或减去天数、秒数等。

3.1 计算两个日期之间的时间差
from datetime import datetime, timedelta  start_date = datetime(2023, 7, 1)  
end_date = datetime(2023, 7, 19)  
diff = end_date - start_date  
print(diff.days)  # 输出:18

 

3.2 在日期上添加或减去时间
from datetime import datetime, timedelta  now = datetime.now()  
one_day_later = now + timedelta(days=1)  
one_hour_ago = now - timedelta(hours=1)  
print(one_day_later)  
print(one_hour_ago)

 

4. 其他类和功能

除了上述的datetimedatetimetimedelta类外,datetime模块还提供了其他一些有用的类和功能,如timezone类用于表示时区信息,以及strptime()函数用于将字符串解析为日期时间对象等。

5. 总结

Python的datetime模块提供了强大的日期和时间处理能力,使得在Python中处理日期和时间变得简单而直观。通过本文的介绍,你应该已经对datetime模块有了基本的了解,并能够在实际编程中运用它来处理日期和时间相关的任务。

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

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

相关文章

Docx文件误删除如何恢复?别再花冤枉钱了,4个高效恢复软件!

不管是工作还是学习,总是会与各种各样的文件打交道。文件量越多就越容易出现文件丢失、文件误删的情况。遇到这些情况,失去的文件还能找回来吗?只要掌握了一些数据恢复方法,是很有机会恢复回来的,下面我会将这些方法分…

[机器学习系列]深入探索回归决策树:从参数选择到模型可视化

目录 一、回归决策树的参数 二、准备数据 三、构建回归决策树 (一)拟合模型 (二)预测数据 (三)查看特征重要性 (四)查看模型拟合效果 (五) 可视化回归决策树真实值和预测值 (六)可视化决策树并保存 部分结果如下: 一、回归决策树的参数 DecisionTreeRegress…

zookeeper之分布式环境搭建

ZooKeeper的分布式环境搭建是一个涉及多个步骤的过程,主要包括准备工作、安装ZooKeeper、配置集群、启动服务以及验证集群状态。以下是搭建ZooKeeper分布式环境的基本步骤: 1. 准备工作 确保所有节点的系统时间同步。确保所有节点之间网络互通&#xf…

Redis-5 分布式锁

一.为什么要使用分布式锁? 传统的互斥锁synchronized只能作用于同一台虚拟机上的线程,在使用服务器集群部署的情况下,互斥锁就会失效,因此要采用分布式锁来处理不同服务器上的线程访问同一资源的情况。 二.redis的分布式锁是如何…

NVIDIA_SMI has failed because it couldn’t communicate with the NVIDIA driver

参考:https://www.zhihu.com/question/474222642/answer/3127013936 https://blog.csdn.net/ZhouDevin/article/details/128265656 nvidia-smi查看报错,nvcc正常 1)查看nvidia版本 ls /usr/src | grep nvidia nvidia-550.78 2)…

暗区突围国际服pc端怎么获取测试资格 twitch掉落资格获取教程

《暗区突围》是由腾讯魔方工作室群开发的第一人称射击类手游。游戏以从暗区撤离并收集物资满载而归作为最终目的,带出的战利品可以存储在仓库中,又可以出售用以换取游戏金钱。游戏中玩家可以创建男性或女性角色,可以通过选择脸型、发型、发色…

冒泡法排序方法与找到出现最多的字符及出现次数

一. 简介 本文学习一下,字符大小排序,获取最大值与最小值。 输出字符串中出现最多的字符,以及出现次数。 二. 冒泡法排序方法与获取最大最小值 1. 冒泡法排序 终端随机输入一个字符串,只包括字符0-9,字符串长度…

2024-05-08 postgres-查询树Query-分析

摘要: pg的词法分析和语法分析使用的技术与mysql相同,此法分析使用bison,语法分析使用了flex。之后ANSI SQL句子被转换为查询树。 Query 结构体保存了文本类型的 SQL,经过语法分析后的分析结果,Query 结构体的成员与 SOL语句的各个子句基本…

AI中LangChain实现RAG中的pdf原理以及快速上手

AI中LangChain实现RAG中的pdf原理以及快速上手 什么是LangChain LangChain是一种基于自然语言处理技术的语言生成模型,它可以将输入的文本转换为自然语言的输出。LangChain的实现原理是基于RAG(Retriever-Reader-Generator)模型&#xff0c…

C++ 动态内存管理

例如:动态内存和释放单个数据的存储区 一 用new运算符初始化单个数据的存储区 举例

Qt:实现git中diff的功能

在 Git 中,有四种 diff 算法,即 Myers、Minimal、Patience 和 Histogram,用于获取位于两个不同 commit 中的两个相同文件的差异。 Myers算法实现参考: Myers‘Diff之贪婪算法_myers算法-CSDN博客 Git Diff 算法详解&#xff1a…

深度学习算法集成部署

文章目录 0 Docker容器部署1 制作dockerfile2 新建镜像3 新建容器4 运行脚本5 异常处理0 Docker容器部署 使用 Docker 容器部署深度学习模型有以下几个主要优势: 环境一致性:Docker 容器可以将应用程序及其所需的依赖项打包在一起,确保应用程序在不同环境中的运行一致性。这对…

为什么在二三十岁时应该努力变强大?

一、对于即将三十岁或三十岁的人的建议,包括举重、跑步、学习等健身技能,以及在生活中如何处理困难和挑战。 举重是二三十岁的人的最佳做法之一 学习如何在身体上、感情上和精神上挑战极限 在城市里寻找机会,接受邀请,强迫自己出去…

C++之Eigen库基本使用

目录 1、矩阵的构造和初始化操作 2、矩阵的算术运算 3、矩阵的分解和求解 4、矩阵的变换 5、矩阵的访问和修改 6、矩阵遍历 7、线性方程组求解 8、其他操作 Eigen库是一个高级的C库,用于线性代数,矩阵和向量运算,数值分析和相关的数学…

【智能算法】人工原生动物优化算法(APO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.获取代码 1.背景 2024年,X Wang受到自然界原生动物启发,提出了人工原生动物优化算法( Artificial Protozoa Optimizer, APO)。 2.算法原理 2.1算法思想 AP…

压缩归档库-Snappy介绍

1.简介 Snappy 是一个 C 编写的压缩和解压缩库,由 Google 开发。它专为速度而设计,而不是最大压缩率或与其他压缩库的兼容性。 Snappy 通常用于需要快速压缩和解压缩的场景。 Snappy具有以下属性: 快速:压缩速度达到250 MB/秒及…

数智化快速开发平台

助力企业IT规划标准化,实现企业IT生态化 目前市场上有很多面向企业各种业务场景的产品,这些产品给企业管理带来便利性的同时,也带来了一系列问题,例如: 不同系统的后台管理功能基本一致,却需要重复建设&a…

linux调试

文章目录 1. 使用打印来调试1.1 重定向1.2 标准预定义宏1.3 日志代码 2. 内核异常2.1 内核打印2.1.1 打印级别2.1.2 跟踪异常2.1.3 动态打印2.1.4 RAM console 2.2 OOPS2.2.1 有源代码的情况2.2.2 没有源代码的情况 3 查看日志4 工具调试 1. 使用打印来调试 1.1 重定向 2>…

代码随想录学习Day 33

动态规划理论基础 动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心&#x…

[Collection与数据结构] Map与Set(一):二叉搜索树与Map,Set的使用

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (91平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …