【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 …...
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...

什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...

回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...