【python学习】标准库之日期和时间库定义、功能、使用场景和示例
引言
datetime模块最初是由 Alex Martelli 在 Python 2.3 版本引入的,目的是为了解决之前版本中处理日期和时间时存在的限制和不便
在datetime模块出现之前,Python 主要使用time模块来处理时间相关的功能,但time模块主要基于 Unix 纪元时间(即从1970年1月1日开始的秒数),对于复杂的日期和时间操作不够灵活
随着时间的推移,
datetime模块经过了多次改进,现在已经成为Python标准库中处理日期和时间相关问题的首选模块
文章目录
- 引言
- 一、定义
- 二、功能
- 2.1 创建日期和时间对象
- 2.2 日期和时间运算
- 2.3 格式化和解析日期和时间
- 2.4 时间差和时间间隔
- 三、使用场景
- 3.1 日期和时间表示
- 3.2 日期和时间运算
- 3.3 日期和时间格式化
- 3.4 时间差和时间间隔
- 3.5 时区操作
- 3.6 日期和时间迭代
- 四、代码示例
- 4.1 创建日期和时间对象
- 4.2 从字符串解析日期和时间
- 4.3 日期和时间运算
- 4.4 格式化和解析日期和时间
- 4.5 时间差和时间间隔
- 4.6 时区操作
- 五、总结(思维导图)
一、定义
在Python中,日期和时间处理的标准库是
datetime模块,它定义了一系列的功能和方法,用于操作和格式化日期和时间
二、功能
2.1 创建日期和时间对象
datetime.datetime.now(): 获取当前的日期和时间datetime.datetime.fromtimestamp(timestamp): 从Unix纪元以来的秒数创建日期和时间对象datetime.datetime.utcfromtimestamp(timestamp): 从UTC时区的Unix纪元以来的秒数创建日期和时间对象datetime.datetime.strptime(date_string, format): 从字符串解析日期和时间对象
2.2 日期和时间运算
datetime.datetime.date(): 获取日期对象datetime.datetime.time(): 获取时间对象datetime.datetime.timetuple(): 将日期和时间对象转换为元组datetime.datetime.utcoffset(): 获取UTC时区的偏移量
2.3 格式化和解析日期和时间
datetime.datetime.strftime(format): 将日期和时间对象格式化为字符串datetime.datetime.strptime(date_string, format): 从字符串解析日期和时间对象
2.4 时间差和时间间隔
datetime.timedelta: 表示两个日期和时间之间的差值,可以加减日期和时间
三、使用场景
3.1 日期和时间表示
- 创建当前日期和时间对象
- 创建特定日期和时间的对象
- 从字符串解析日期和时间对象
3.2 日期和时间运算
- 获取日期和时间对象的时间戳
- 获取日期和时间对象的UTC偏移量
- 进行日期和时间的加减运算
3.3 日期和时间格式化
- 将日期和时间对象格式化为字符串
- 从字符串解析日期和时间对象
3.4 时间差和时间间隔
- 计算两个日期和时间之间的差值
- 进行日期和时间的加减运算
3.5 时区操作
- 创建时区对象
- 将日期和时间对象转换为特定时区的日期和时间
3.6 日期和时间迭代
- 遍历日期和时间对象
这些是
datetime模块中的一些基本功能和类,在Python中,日期和时间处理通常使用这个模块,因为它提供了简单、强大的日期和时间操作功能
四、代码示例
4.1 创建日期和时间对象
datetime.datetime.now(): 获取当前的日期和时间
from datetime import datetime
now = datetime.now()
print(now) # 输出: 2023-04-01 12:00:00
4.2 从字符串解析日期和时间
datetime.datetime.strptime(date_string, format): 将字符串解析为日期和时间对象
date_string = "2023-04-01 12:00:00"
parsed_datetime = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(parsed_datetime) # 输出: 2023-04-01 12:00:00
4.3 日期和时间运算
datetime.datetime.date(): 获取日期对象datetime.datetime.time(): 获取时间对象datetime.datetime.timetuple(): 将日期和时间对象转换为元组datetime.datetime.utcoffset(): 获取UTC时区的偏移量
now = datetime.now()
date = now.date()
time = now.time()
utcoffset = now.utcoffset()
print(date) # 输出: 2023-04-01
print(time) # 输出: 12:00:00
print(utcoffset) # 输出: datetime.timedelta(0, 14400)
4.4 格式化和解析日期和时间
datetime.datetime.strftime(format): 将日期和时间对象格式化为字符串datetime.datetime.strptime(date_string, format): 从字符串解析日期和时间对象
now = datetime.now()
formatted_now = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_now) # 输出: 2023-04-01 12:00:00
4.5 时间差和时间间隔
datetime.timedelta: 表示两个日期和时间之间的差值,可以加减日期和时间
from datetime import timedelta
delta = timedelta(days=1, hours=12)
future_datetime = now + delta
print(future_datetime) # 输出: 2023-04-02 00:00:00
4.6 时区操作
datetime.timezone: 表示时区,可以用于时间转换datetime.datetime.astimezone(): 将日期和时间对象转换为特定时区的日期和时间
from datetime import timezone
utc_time = datetime.now(timezone.utc)
local_time = utc_time.astimezone()
print(utc_time) # 输出: 2023-04-01 12:00:00+00:00
print(local_time) # 输出: 2023-04-01 12:00:00
这些是
datetime模块中的一些基本功能和方法的代码示例
五、总结(思维导图)

相关文章:
【python学习】标准库之日期和时间库定义、功能、使用场景和示例
引言 datetime模块最初是由 Alex Martelli 在 Python 2.3 版本引入的,目的是为了解决之前版本中处理日期和时间时存在的限制和不便 在datetime模块出现之前,Python 主要使用time模块来处理时间相关的功能,但 time模块主要基于 Unix 纪元时间&…...
Android --- Kotlin学习之路:基础语法学习笔记
------>可读可写变量 var name: String "Hello World";------>只读变量 val name: String "Hello World"------>类型推断 val name: String "Hello World" 可以写成 val name "Hello World"------>基本数据类型 1…...
嵌入式智能手表项目实现分享
简介 这是一个基于STM32F411CUE6和FreeRTOS和LVGL的低成本的超多功能的STM32智能手表~ 推荐 如果觉得这个手表的硬件难做,又想学习相关的东西,可以试下这个新出的开发板,功能和例程demo更多!FriPi炸鸡派STM32F411开发板: 【STM32开发板】 FryPi炸鸡派 - 嘉立创EDA开源硬件平…...
`nmap`模块是一个用于与Nmap安全扫描器交互的库
在Python中,nmap模块是一个用于与Nmap安全扫描器交互的库。Nmap(Network Mapper)是一个开源工具,用于发现网络上的设备和服务。虽然Python的nmap模块可能不是官方的Nmap库(因为Nmap本身是用C/C编写的)&…...
JVM系列 | 对象的创建与存储
JVM系列 | 对象的生命周期1 对象的创建与存储 文章目录 前言对象的创建过程内存空间的分配方式方式1 | 指针碰撞方式2 | 空闲列表 线程安全问题 | 避免空间冲突的方式方式1 | 同步处理(加锁)方式2 | 本地线程分配缓存 对象的内存布局Part1 | 对象头Mark Word类型指针…...
【JavaScript 算法】快速排序:高效的排序算法
🔥 个人主页:空白诗 文章目录 一、算法原理二、算法实现三、应用场景四、优化与扩展五、总结 快速排序(Quick Sort)是一种高效的排序算法,通过分治法将数组分为较小的子数组,递归地排序子数组。快速排序通常…...
Excel如何才能忽略隐藏行进行复制粘贴?
你有没有遇到这样的情况:数据很多,将一些数据隐藏后,进行复制粘贴,结果发现粘贴后的内容仍然将整个数据都显示出来了!那么,Excel如何才能忽略隐藏行进行复制粘贴? 打开你的Excel表格 Excel如何…...
行人越界检测 越线 越界区域 多边形IOU越界判断
行人越界判断 越界判断方式:(1)bbox中心点越界(或自定义)(2)交并比IoU判断 越界类型:(1)越线 (2)越界区域 1.越线判断 bbox中心点xc、…...
「UCD」浅谈蓝湖Figma交互设计对齐
在现代数字产品的设计和开发过程中,选择合适的工具对于提高团队效率和保证产品质量至关重要。本文将从开发和设计两个不同的角度,探讨蓝湖和Figma两款流行工具的优势与不足,并提出结论和建议。 开发研发视角:蓝湖 优点: 清晰的设计规范:蓝湖为开发工程师提供了清晰的设计…...
VUE3 播放RTSP实时、回放(NVR录像机)视频流(使用WebRTC)
1、下载webrtc-streamer,下载的最新window版本 Releases mpromonet/webrtc-streamer GitHub 2、解压下载包 3、webrtc-streamer.exe启动服务 (注意:这里可以通过当前文件夹下用cmd命令webrtc-streamer.exe -o这样占用cpu会很少,…...
[PaddlePaddle飞桨] PaddleOCR-光学字符识别-小模型部署
PaddleOCR的GitHub项目地址 推荐环境: PaddlePaddle > 2.1.2 Python > 3.7 CUDA > 10.1 CUDNN > 7.6pip下载指令: python -m pip install paddlepaddle-gpu2.5.1 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install paddleocr2.7…...
Python应用开发——30天学习Streamlit Python包进行APP的构建(15):优化性能并为应用程序添加状态
Caching and state 优化性能并为应用程序添加状态! Caching 缓存 Streamlit 为数据和全局资源提供了强大的缓存原语。即使从网络加载数据、处理大型数据集或执行昂贵的计算,它们也能让您的应用程序保持高性能。 本页仅包含有关 st.cache_data API 的信息。如需深入了解缓…...
python实现openssl的EVP_BytesToKey及AES_256_CBC加解密算法
python实现openssl EVP_BytesToKey(EVP_aes_256_cbc(), EVP_md5(), NULL, pass, passlen, 1, key, iv); 并实现AES 256 CBC加解密. # encoding:utf-8import base64 from Crypto.Cipher import AES from Crypto import Random from hashlib import md5def EVP_BytesToKey(passw…...
基于SpringBoot+VueJS+微信小程序技术的图书森林共享小程序设计与实现
注:每个学校每个老师对论文的格式要求不一样,故本论文只供参考,本论文页数达到60页以上,字数在6000及以上。 基于SpringBootVueJS微信小程序技术的图书森林共享小程序设计与实现 目录 基于SpringBootVueJS微信小程序技术的图书森…...
【css】image 使用 transform:scale 放大后显示不全的问题
css 可以用 transform: scale(1.2) 实现图片放大 1.2 倍显示的功能,在此基础上可以修改 transform-origin 为用户点击的坐标值优化体验。问题在于 origin 位于图片下方时,图片放大后出现滚动条,而滚动条的高度会忽略放大显示的图片的上半部分…...
损失函数简介
损失函数(Loss Function)是机器学习中用来衡量模型预测值与真实值之间差异的函数。在训练过程中,通过最小化损失函数来优化模型的参数,以提高模型的预测准确性。 以下是损失函数的主要用途和一些常用的损失函数类型: 损失函数的用途: 评估模型性能:损失函数提供了一个…...
2023睿抗CAIP-编程技能赛-本科组省赛(c++)
RC-u1 亚运奖牌榜 模拟 AC: #include<iostream> using namespace std; struct nation{int j,y,t; }a[2]; int main(){int n;cin>>n;for(int i1;i<n;i){int x,y;cin>>x>>y;if(y1) a[x].j;if(y2) a[x].y;if(y3) a[x].t;}cout<<a[0].j<<&…...
现在国内的ddos攻击趋势怎么样?想了解现在ddos的情况该去哪看?
目前,国内的DDoS攻击趋势显示出以下几个特征: 攻击频次显著增加:根据《快快网络2024年DDoS攻击趋势白皮书》,2023年DDoS攻击活动有显著攀升,总攻击次数达到1246.61万次,比前一年增长了18.1%。 攻击强度和规…...
微服务到底是个什么东东?
微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。 每个服务运行在其独立的进程中,服务和服务间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的…...
C++笔试强训5
文章目录 一、选择题1-5题6-10题 二、编程题题目一题目二 一、选择题 1-5题 x1,先x,再x–,while判断永远为真,故死循环 选D。 sizeof会计算\0,strlen不包括\0,并且strlen只计算\0之前的。 所以sizeof是10,strken是4 …...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
