Python datetime 模块的高级应用

news2024/9/23 21:25:01

Python datetime 模块的高级应用

  • 介绍
    • 方法
      • 时区处理
      • 日期格式化
      • 日期计算
      • 常见问题及解决方案
      • 代码
        • 日历应用
        • 时间序列分析


介绍

datetime 模块是 Python 中用于处理日期和时间的标准库模块。它提供了日期和时间类型(datetimedatetime)以及与日期和时间相关的各种操作函数。以下是一些 datetime 模块的高级应用。

方法

这个模块的方法介绍:

方法描述
now()返回当前日期和时间。
combine(date, time)将给定的日期和时间合并成一个新的datetime对象。
strptime(date_string, format)将字符串解析为datetime对象,需要指定字符串的格式。
strftime(format)将datetime对象格式化为指定格式的字符串。
date()返回日期部分。
time()返回时间部分。
replace(year, month, day, hour, minute, second, microsecond)返回一个新的datetime对象,用给定的参数替换原对象中的对应部分。
timetuple()返回表示datetime对象的时间元组。
timestamp()返回POSIX时间戳。
weekday()返回星期几,星期一为0,星期日为6。
isoweekday()返回星期几,星期一为1,星期日为7。
isocalendar()返回ISO格式的年份、周数和星期几的元组。
isoformat()返回ISO 8601格式的字符串表示。
utcoffset()返回UTC偏移量。
dst()返回夏令时调整的偏移量。
tzname()返回时区名称。

时区处理

Python 3.9 之前,datetime 模块的时区支持有限,通常需要与第三方库如 pytzdateutil 结合使用。从 Python 3.9 开始,datetime 模块内置了对自定义时区的支持。

from datetime import datetime, timezone

# 创建一个 UTC 时间戳
utc_dt = datetime.now(timezone.utc)
print(utc_dt)
# 创建一个本地时间戳(我所在的时区是 Asia/Shanghai)
local_dt = datetime.now()
print(local_dt)
# 转换本地时间到 UTC 时间
local_dt_utc = local_dt.astimezone(timezone.utc)
print(local_dt_utc)
# 转换 UTC 时间到本地时间
utc_dt_local = utc_dt.astimezone()
print(utc_dt_local)

astimezone()datetime对象的一个扩展方法。它用于将一个datetime对象从一个时区转换到另一个时区

在这里插入图片描述

日期格式化

datetime 对象提供了 strftimestrptime 方法来进行日期和时间的格式化和解析。

from datetime import datetime

# 当前时间
now = datetime.now()
# 格式化当前时间为字符串
formatted_date = now.strftime('%Y-%m-%d %H:%M:%S')
print(formatted_date)
# 解析字符串为 datetime 对象
parsed_date = datetime.strptime('2023-03-21 15:00:00', '%Y-%m-%d %H:%M:%S')
print(parsed_date)

在这里插入图片描述

日期计算

datetime 对象提供了多种方法进行日期计算,如 addsubreplace 等。

from datetime import datetime, timedelta
# 当前时间
now = datetime.now()
# 添加一天
tomorrow = now + timedelta(days=1)
print(tomorrow)
# 减去一小时
yesterday = now - timedelta(hours=1)
print(yesterday)
# 替换日期和时间
new_date = now.replace(year=2020, month=1)
print(new_date)

在这里插入图片描述

常见问题及解决方案

  1. 时区转换:在使用 pytzdateutil 时,时区转换是一个常见问题。确保正确安装和导入库,并使用合适的时区对象。
  2. 日期格式不一致:在解析和格式化日期时,确保字符串格式与 strptime 方法的格式字符串相匹配。
  3. 日期计算错误:在日期计算时,确保使用正确的日期对象和方法。

代码

日历应用
from datetime import datetime, timedelta
# 获取当前日期
today = datetime.now()
# 打印本周每一天
for day_offset in range(7):
    day = today + timedelta(days=day_offset)
    print(day.strftime('%Y-%m-%d'))

在这里插入图片描述

时间序列分析
from datetime import datetime, timedelta

# 创建一个时间序列
times = [datetime(2023, 1, 1) + timedelta(days=i) for i in range(100)]
# 打印时间序列
for time in times:
    print(time.strftime('%Y-%m-%d'))

在这里插入图片描述

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

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

相关文章

创建个人的AI智能体agent

我在魔塔空间创建了一个作息时间管理的agent >>>>>点我体验<<<<<< Agent并非ChatGPT升级版&#xff0c;它不仅告诉你“如何做”&#xff0c;更会帮你去做&#xff01; 尽管ChatGPT的知识储备接近“全知全能”&#xff0c;但当你试着以AI助手…

K8S之运用节点选择器指定Pod运行的节点

node节点选择器的使用 使用场景实践使用nodeName使用nodeSelectornodeName和nodeSelector混合使用1、设置了nodeName 和 设置 Node上都不存在的标签。看调度情况2、设置nodeName 为node1 和 设置 node2上才有的标签。看调度情况 实践总结 使用场景 默认情况&#xff0c;在创建…

系统架构21 - 统一建模语言UML(下)

UML图 UML中的图分类作用 视图用例视图逻辑视图进程视图实现视图部署视图 UML中的图 “图”是一组元素的图形表示&#xff0c;大多数情况下把图画成顶点&#xff08;代表事物&#xff09;和弧&#xff08;代表关系&#xff09;的连通图。为了对系统进行可视化&#xff0c;可以…

浏览器F12调试

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目…

静态时序分析:静态时序分析的原理及其两种模式PBA、GBA

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 静态时序分析有两种模式&#xff1a;PBA(Path Based Analysis)和GBA(Graph Based Analysis)&#xff0c;PBA是基于路径的分析模式而GBA则是基于图的分析模式。在…

【C++修行之道】(引用、函数提高)

目录 一、引用 1.1引用的基本使用 1.2 引用注意事项 1.3 引用做函数参数 1.4 引用做函数返回值 1.5 引用的本质 1.6 常量引用 1.7引用和指针的区别 二、函数提高 2.1 函数默认参数 2.2函数占位参数 2.3 函数重载 2.4函数重载注意事项 一、引用 1.1引用的基本使用 …

如何将mongodb+django部署到云服务器上(备份)

在有了一台云服务器之后&#xff0c;我们就可以把写在本机上的程序&#xff0c;搬到服务器上了。采用WinSCP在本机和服务器之间交换文件&#xff1b;FinalShell来操作服务器。 1、mongodb-本机到服务器 主要是三个步骤&#xff1a;dump本地数据库-上传-导入&#xff0c;详情请…

基于大规模连续多目标优化的共轭梯度-进化集成算法

声明&#xff1a;文章题目字数有限&#xff0c;翻译水平有限&#xff0c;仅供参考&#xff01; 原题目: Integrating Conjugate Gradients Into Evolutionary Algorithms for Large-Scale Continuous Multi-Objective Optimization 引&#xff1a;这么久了&#xff0c;又捡起…

Pandas 对带有 Multi-column(多列名称) 的数据排序并写入 Excel 中

Pandas 从Excel 中读取带有 Multi-column的数据 正文 正文 我们使用如下方式写入数据&#xff1a; import pandas as pd import numpy as npdf pd.DataFrame(np.array([[10, 2, 0], [6, 1, 3], [8, 10, 7], [1, 3, 7]]), columns[[Number, Name, Name, ], [col 1, col 2, co…

springboot165科研工作量管理系统的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

第4章——深度学习入门(鱼书)

第4章 神经网络的学习 本章的主题是神经网络的学习。这里所说的“学习”是指从训练数据中自动获取最优权重参数的过程。本章中&#xff0c;为了使神经网络能进行学习&#xff0c;将导入损失函数这一指标。而学习的目的就是以该损失函数为基准&#xff0c;找出能使它的值达到最…

逐鹿比特币生态,Elastos 携新作 BeL2「重出江湖」

撰文&#xff1a;Babywhale&#xff0c;Techub News 文章来源Techub News&#xff0c;搜Tehub News下载查看更多Web3资讯。 刚刚过去的 2023 年&#xff0c;「比特币生态」成为了市场的绝对焦点之一。从铭文开始&#xff0c;到重新走进大众视野的 Stacks 与比特币闪电网络&am…

LeetCode Python - 3.无重复字符的最长子串

文章目录 题目答案运行结果 题目 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”&#xff0c;所以其长度为 3。 示例 2: 输入: s “bbbbb” 输出: 1 解释:…

vscode +markdown 的安装和使用

文章目录 前言一、vscode markdown 是什么&#xff1f;1.vscode是什么&#xff1f;2.markdown 是什么&#xff1f; 二、安装步骤1.下载2.安装 三、安装插件1.安装 Markdown All in One2.安装 Markdown Preview Enhanced3. Paste Image v1.0.44.LimfxCodeExv0.7.105.Code Spell …

MoE-LLaVA:具有高效缩放和多模态专业知识的大型视觉语言模型

视觉和语言模型的交叉导致了人工智能的变革性进步&#xff0c;使应用程序能够以类似于人类感知的方式理解和解释世界。大型视觉语言模型(LVLMs)在图像识别、视觉问题回答和多模态交互方面提供了无与伦比的能力。 MoE-LLaVA利用了“专家混合”策略融合视觉和语言数据&#xff0…

STM32输出PWM波控制180°舵机

时间记录&#xff1a;2024/2/8 一、PWM介绍 &#xff08;1&#xff09;脉冲宽度调制 &#xff08;2&#xff09;占空比&#xff1a;高电平时间占整个周期时间的比例 &#xff08;3&#xff09;STM32通过定时器实现PWM时具有两种模式 PWM1模式&#xff1a;向上计数模式下&…

【华为云】云上两地三中心实践实操

写在前面 应用上云之后&#xff0c;如何进行数据可靠性以及业务连续性的保障是非常关键的&#xff0c;通过华为云云上两地三中心方案了解相关方案认证地址&#xff1a;https://connect.huaweicloud.com/courses/learn/course-v1:HuaweiXCBUCNXI057Self-paced/about当前内容为华…

基于轻量级模型YOLOX-Nano的菜品识别系统

工程Gitee地址&#xff1a; https://gitee.com/zhong-liangtang/ncnn-android-yolox-nano 一、YOLOX简介 YOLOX是一个在2021年被旷视科技公司提出的高性能且无锚框&#xff08;Anchor-free&#xff09;的检测器&#xff0c;在YOLO系列的基础上吸收近年来目标检测学术界的最新…

Yii特性

Yii几乎拥有了当今Web 2.0应用发展的全部特性。下面是这些特性的一个简短的清单。 模型-视图-控制器&#xff08;MVC&#xff09;设计模式&#xff1a;Yii在WEB编程中采用这一成熟的技术从而可以更好的将逻辑层和表现层分开。数据库访问对象&#xff08;DAO&#xff09;和Acti…

如何在vue中使用拖动排序组件sortablejs

效果图&#xff1a; 1.首先&#xff0c;我们需要在vue项目中安装依赖&#xff1a; npm install -save sortablejs2.创建demo文件>demoTest.vue&#xff0c;直接附上实例代码&#xff1a; <template><div><div id"table-names"><div class&…