python 获取 特定日期 6个月前的日期_Python datetime教程:操作时间、日期与时间跨度...

本文深入探讨了Python的datetime模块,学习如何创建日期对象、提取年份和月份、处理时间跨度、转换时间戳以及比较日期。通过示例展示了strptime()和strftime()函数的用法,以及在数据科学中处理日期和时间的重要性。此外,还介绍了与pandas结合使用datetime对象进行数据分析的方法。
摘要由CSDN通过智能技术生成

在 Python 中处理日期和时间有点麻烦。所幸,Python 提供了一种内置的方式来简化这种操作:Python 的 Datetime 模块。

datetime 可以帮助我们识别并处理与时间相关的元素,如日期,小时,分钟,秒,星期,月份,年份等。它提供了诸如时区和夏令时等很多服务。还可以处理时间戳数据,解析星期几,每月几号,以及从字符串格式化日期和时间等。

简而言之,datetime 是 Python 中处理日期和时间的一大利器。我们现在来深入了解一下。

本节教程中,我们将会学习很多 datetime 中很多详细的方法,包括:

  • 创建日期对象 Date
  • 从日期中获取年份和月份
  • 从日期中获取每月几号和星期几
  • 从日期中获取小时和分钟
  • 从日期中获取一年中的第几周
  • 日期对象转换成时间戳
  • Unix 时间戳字符串转换成日期对象
  • 处理时间差对象 timedelta
  • 比较两个日期和时间之间的差值
  • 日期格式化:strftime() 和 strptime()
  • 时区处理
  • 使用 Pandas 中的 datetime 对象
  • 获取年,月,日,时,分
  • 获取星期几与一年中的第几天
  • 转换日期对象为 DataFrame 索引

学习本教程时,我们建议你在自己的机器上运行一下这些代码。

Python 的 datetime 类

在编写代码之前,有必要先了解一下 datetime 模块中提供的五个主要的对象类。根据我们具体需要执行的操作,我们可能需要使用其中的一个或多个类。

  • datatime:允许我们同时操作时间和日期(月,日,年,时,秒,微秒)。
  • date:允许我们排除时间仅操作日期(月,日,年)
  • time:允许我们排除日期仅操作时间(时,分,秒,微秒)
  • timedelta:一个用于操作日期以及测量的时间跨度
  • tzinfo:一个用于处理时区的抽象类

如果还是不太理解它们之间的区别,也没关系。我们接下来就深入学习一下 datetime 的工作方式,来更好地理解和使用它们。

创建 Date 对象

首先,我们来仔细看看 datetime 对象。由于 datetime 既是模块名也是模块内的类名,所以我们要从 datetime 模块内引用 datetime 类。

然后,打印当前日期和时间来查看 datetime 对象中都包含什么。可以使用 datetime 类的 .now() 函数创建一个 datetime 对象,然后打印这个对象,之后再使用 type() 函数打印这个对象的类型。如此,我们可以看到更详细的信息。

2f0313539619ca18f256d2e5daca35ff.png
24a421b084d9da00dea264ab75cb5d8c.png

从上面的结果中,我们可以看到 datetime_object 是 datetime 类的对象实例,对象中包含了年,月,日,时,分,秒,以及毫秒。

从 Date 中提取年份和月份

我们现在已经理解了 datetime 对象的构成,那么我们可以猜一下 date 和 time 对象是怎样的。因为我们已经知道 date 对象可以理解为 datetime 去掉了时间数据,而 time 对象可以理解为 datetime 去掉了日期数据。

我们还可以解决很多问题。比如,大多数数据集中,日期和时间信息是以字符串格式存储的。另外,我们可能不希望拿到所有的日期和时间数据,当我们在做一些诸如月度销售分析的时候,那么将信息分解到毫秒级别的用处并不大。

现在,我们来聚焦于数据科学中的一项常见任务:使用 datetime 从字符串中提取我们实际想要的元素。

为了实现这个目的,我们还需要做一些其他的工作。

使用 strptime() 和 strftime() 处理日期和时间字符串

幸运的是,datetime 提供了两个方法,strptime() 和 strftime(),可以在字符串与 datetime 对象之间互相转换。strptime() 可以读取字符串中的日期与时间信息并将其转换为 datetime 对象,而 strftime 则是将 datetime 对象转换为字符串。

当然,strptime() 并没有魔法,它不能将任意字符串转换为日期和时间,它需要一些人为地帮助,来解释它究竟识别到了什么。但是它只能识别大多数常规的日期和时间字符串格式(详情请查阅文档)。我们现在给定一个日期格式字符串 "YYYY-MM-DD",来看看 strptime() 方法能做什么。

416659cfdc9326fc83cc512befff9d29.png
40d3e270e5735e8d3f6df222de587525.png

可以看到 strptime() 方法接收两个参数:字符串 my_string 以及 "%Y-%m-%d",多出来的这个字符串告诉 strptime() 方法如何解释传入的字符串 my_string。比如,"%Y" 表示期望从字符串的前四个字符中读取年份。

这篇文档中完整地列出了这些可匹配的模式,我们将在教程后面的部分详细介绍这些方法。

你可能还注意到日期后面还跟着时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值