Python datetime 模块的高级应用

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.mzph.cn/news/673591.shtml

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

相关文章

机器人运动学林沛群——变换矩阵

对于仅有移动,由上图可知: A P B P A P B o r g ^AP^BP^AP_{B org} APBPAPBorg​ 对于仅有转动,可得: A P B A R B P ^AP^A_BR^BP APBA​RBP 将转动与移动混合后,可得: 一个例子 在向量中&#xff…

「递归算法」:二叉树剪枝

一、题目 给你二叉树的根结点 root ,此外树的每个结点的值要么是 0 ,要么是 1 。 返回移除了所有不包含 1 的子树的原二叉树。 节点 node 的子树为 node 本身加上所有 node 的后代。 示例 1: 输入:root [1,null,0,0,1] 输出&…

grafana+prometheus+hiveserver2(jmx_exporter+metrics)

一、hiveserver2开启metrics&#xff0c;并启动jmx_exporter 1、修改hive-site.xml文件开启metrics <property><name>hive.server2.metrics.enabled</name><value>true</value> </property> <property><name>hive.service.m…

ChatGPT高效提问—prompt常见用法(续篇三)

ChatGPT高效提问—prompt常见用法&#xff08;续篇三&#xff09; 1.1 多选项 ​ 多选项技术为模型提供了一个清晰的问题或任务&#xff0c;并附带一组预先定义的潜在答案。这种方法在生成仅限于特定选项集的文本方面表现出色&#xff0c;适用于问答、文本补全和其他任务。利…

MySQL 日志管理

4.6&#xff09;日志管理 MySQL 支持丰富的日志类型&#xff0c;如下&#xff1a; 事务日志&#xff1a;transaction log 事务日志的写入类型为 "追加"&#xff0c;因此其操作为 "顺序IO"&#xff1b; 通常也被称为&#xff1a;预写式日志 write ahead…

《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)

文章目录 1.1 MySQL 概览&#xff1a;版本、特性和生态系统1.1.1 基础知识1.1.2 重点案例1.1.3 拓展案例 1.2 安装和配置 MySQL1.2.1 基础知识1.2.2 安装步骤1.2.3 重点案例1.2.4 拓展案例 1.3 基础命令和操作1.3.1 基础知识1.3.2 重点案例1.3.3 拓展案例 1.1 MySQL 概览&#…

【Web】vulhub Fastjson反序列化漏洞复现学习笔记

目录 1.2.24 RCE CVE-2017-18349 复现流程 原理分析 1.2.47 RCE CNVD-2019-22238 复现流程 原理分析 漏洞探测 1.2.24 RCE CVE-2017-18349 复现流程 vulhub启动靶场 用marshalsec启动LDAP/RMI服务 java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRef…

Redis篇之redis是单线程

一、redis是单线程 Redis是单线程的&#xff0c;但是为什么还那么快&#xff1f;主要原因有下面3点原因&#xff1a; 1. Redis是纯内存操作&#xff0c;执行速度非常快。 2. 采用单线程&#xff0c;避免不必要的上下文切换可竞争条件&#xff0c;多线程还要考虑线程安全问题。 …

联合体的深入了解

1.联合体类型的声明 像结构体一样&#xff0c;联合体也是由一个或者多个成员构成&#xff0c;这些成员可以不同的类型。 但是编译器只为最大的成员分配足够的内存空间。联合体的特点是所有成员共用同一块内存空间。所以联合体也叫&#xff1a;共用体。 给联合体其中一个成员赋值…

SpringBoot + Tess4J 实现本地与远程图片的文字识别

1 前言 1.1 概要 在本文中&#xff0c;我们将探讨如何在Spring Boot应用程序里集成Tess4J来实现OCR&#xff08;光学字符识别&#xff09;&#xff0c;以识别出本地和远程图片中的文字。 我们将从添加依赖说起&#xff0c;然后创建服务类以实现OCR&#xff0c;最后展示如何处…

Linux操作系统基础(一):操作系统概述

文章目录 操作系统概述 一、计算机分类 二、计算机组成 三、操作系统概述 四、操作系统分类 操作系统概述 一、计算机分类 计算机一般分为个人计算机&#xff08;笔记、台式机&#xff09;与 企业级服务器&#xff08;1U、2U、机柜、塔式、刀片&#xff09;两种形式。 二…

探索NLP中的N-grams:理解,应用与优化

简介 n-gram[1] 是文本文档中 n 个连续项目的集合&#xff0c;其中可能包括单词、数字、符号和标点符号。 N-gram 模型在许多与单词序列相关的文本分析应用中非常有用&#xff0c;例如情感分析、文本分类和文本生成。 N-gram 建模是用于将文本从非结构化格式转换为结构化格式的…

跨境电商新风潮:充分发挥海外云手机的威力

在互联网行业迅速发展的大环境下&#xff0c;跨境电商、海外社交媒体营销以及游戏产业等重要领域都越来越需要借助海外云手机的协助。 特别是在蓬勃发展的跨境电商领域&#xff0c;像亚马逊、速卖通、eBay等平台&#xff0c;结合社交电商营销和短视频内容成为最有效的流量来源。…

cmd卸载软件

如果使用的是Win 10&#xff0c;并且需要在磁盘内释放一些空间&#xff0c;可以直接在命令提示符里卸载不再使用的应用程序&#xff0c;和小编一起来看看详细的步骤吧。 步骤如下&#xff1a; 以管理员身份运行命令提示符来卸载程序。在Windows搜索框中&#xff0c;键入“ cm…

【Unity】重力场中的路径预测方法

前言 笔者前些天参加完了一场72小时的GameJam游戏开发比赛。这次比赛的主题是“探索”&#xff0c;笔者做了一个名为《探索者号》的探索宇宙的游戏&#xff08;游戏名一开始叫做《星际拾荒者》&#xff0c;但这不重要&#xff09;。 在开发过程中&#xff0c;笔者遇到了一些问…

006集——where语句进行属性筛选——arcgis

在arcgis中&#xff0c; dBASE 文件除了 WHERE 语句以外&#xff0c;不支持 其它 SQL 命令。选择窗口如下&#xff1a; 首先&#xff0c;我们了解下什么是where语句。 WHERE语句是SQL语言中使用频率很高的一种语句。它的作用是从数据库表中选择一些特定的记录行来进行操作。WHE…

[VulnHub靶机渗透] dpwwn: 1

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…

Python 线性回归可视化 并将回归函数放置到图像上

import matplotlib.pyplot as plt import scipy import seaborn as sns# 加载内置的数据集 df sns.load_dataset(tips)#create regplot p sns.regplot(xtotal_bill, ytip, datadf)#calculate slope and intercept of regression equation slope, intercept, r, p, sterr sci…

Android:国际化弹出框

3.13 风格与主题、国际化 1、应用国际化 应用国际化&#xff0c;通过修改系统语言&#xff0c;应用显示语言跟着改变。 选择Locale,点击>>符号。 创建多个国家&#xff0c;地区strings.xml文件&#xff0c;有一个默认strings.xml文件&#xff0c;各个stirngs.xml中<…

C语言指针函数学习2

之前写过一篇指针函数的博文&#xff1b;复习再学习一下&#xff1b; 指针函数&#xff0c;是一个函数&#xff0c;它的返回值是指针类型&#xff1b; 之前写了一个指针函数&#xff0c;返回一个 int * 类型的指针&#xff1b;下面做一个程序&#xff0c;返回一个结构体指针&a…