python中的datetime函数_Python datetime函数常见用法总结

Python datetime使用指导:操作时间、日期和时间区间

在 Python 中处理日期和时间是一个很麻烦的问题。幸运的是,Python 提供了内置方法来简化这种操作:Python Datetime 模块。

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

总结来说,datetime 是 Python 中处理任何日期和时间相关问题的强大手段。本节教程中,我们将会学习很多 datetime 的方法,包括:

创建日期对象

从日期中获取年份和月份

从日期中获取每月几号和星期几

从日期中获取小时和分钟

从日期中获取一年中的第几周

日期对象转换成时间戳

Unix 时间戳字符串转换成日期对象

处理timedelta时间差对象

比较两个日期和时间之间的差值

日期格式化:strftime() 和 strptime()

时区处理

使用 Pandas 中的 datetime 对象

获取年,月,日,时,分

获取星期几与一年中的第几天

转换日期对象为 DataFrame 索引

Python 的 datetime 类

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

datatime:允许我们同时操作时间和日期(月,日,年,时,秒,微秒)。

date:允许我们排除时间仅操作日期(月,日,年)

time:允许我们排除日期仅操作时间(时,分,秒,微秒)

timedelta:一个用于操作日期以及测量的时间跨度

tzinfo:一个用于处理时区的抽象类

创建 Date 对象

datetime 既是模块名也是模块内的类名,所以我们要从 datetime 模块内引用 datetime 类。

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

# import datetime class from datetime module

from datetime import datetime

# get current date

datetime_object = datetime.now()

print(datetime_object)

print('Type :- ',type(datetime_object))

2019-10-25 10:24:01.521881

Type :-

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

从 Date 中提取年份和月份

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

我们也可以反驳一些问题。例如,在大多数数据集中,日期和时间信息都是以字符串格式存储的! 另外,我们可能并不想要所有的日期和时间数据--如果我们要做的是月度销售分析,那么按微秒来分解就没有什么用了。

所以现在,让我们开始挖掘数据科学中的一个常见任务:使用datetime从字符串中只提取我们实际想要的元素。要做到这一点,我们需要做几件事。

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

datetime包含两个方法,strptime()和strftime(),用于将对象从字符串转换为datetime对象,反之亦然。

当然,strptime()并不神奇--它无法将任何字符串转化为日期和时间,它需要我们的帮助来解释它所看到的东西!但它能够读取大部分的日期和时间信息。但它能够读取大多数传统的字符串格式的日期和时间数据(详情请看文档 the documentation for more details)。让我们给它一个YYY-MM-DD格式的日期字符串,看看它能做什么!

my_string = '2019-10-31'

# Create date object in given time format yyyy-mm-dd

my_date = datetime.strptime(my_string, "%Y-%m-%d")

print(my_date)

print('Type: ',type(my_date))

2019-10-31 00:00:00 Type:

注意,strptime()接收了两个参数:字符串(my_string)和"%Y-%m-%d",另一个字符串告诉strptime()如何解释输入的字符串my_string。例如,"%Y "告诉它期望字符串的前四个字符是年份。

这些模式的完整列表可以在文档中找到,我们将在本教程的后面详细介绍这些方法。

你可能已经注意到,在日期中添加了一个00:00:00:00的时间。这是因为我们创建了一个datetime对象,它必须包括一个日期和一个时间。00:00:00:00是默认的时间,如果我们输入的字符串中没有指定时间,那么就会被分配到时间。

总之,我们希望能将日期中的特定元素分离出来进行分析。一种方法可以使用datetime对象的内置类属性来实现,比如.month或.year。

print('Month: ', my_date.month) # To Get month from date

print('Year: ', my_date.year) # To Get month from year

Month: 10 Year: 2019

从 Date 获取每月的某天和一周的某天

让我们再提取一些信息,因为这真的是一个很常见的任务。

你可能感兴趣的:(python中的datetime函数_Python datetime函数常见用法总结)