Python 字符串日期转 date

在日常的编程工作中,我们经常会遇到需要将字符串日期转换为日期类型(date)的需求。比如,我们从数据库中读取数据,日期数据通常以字符串的形式储存,但我们可能需要对这些日期进行一些计算或者比较。在 Python 中,我们可以使用 datetime 模块来实现字符串日期到 date 的转换。

datetime 模块简介

在介绍字符串日期转换之前,先让我们简单了解一下 Python 中的 datetime 模块。datetime 模块是 Python 标准库中用于处理日期和时间的模块。它提供了一系列类和函数,方便我们对日期和时间进行操作。

datetime 模块中的核心类有三个:datetime、date 和 time。datetime 类是 date 和 time 的结合,表示一个具体的日期和时间。date 类表示一个日期,time 类表示一个时间。我们在进行字符串日期转换时,主要是使用到 date 类。

字符串日期转 date 的方法

Python 提供了很多方法来将字符串日期转换为 date 类型。下面我们将介绍几个常用的方法。

使用 strptime() 函数

strptime() 函数是 datetime 模块中的一个函数,可以将格式化的字符串日期转换为 date 类型。它接受两个参数:第一个参数是待转换的字符串日期,第二个参数是日期的格式。下面是一个示例:

import datetime

date_string = "2022-05-30"
date_format = "%Y-%m-%d"

date = datetime.datetime.strptime(date_string, date_format).date()
print(date)

在上面的代码中,我们首先导入了 datetime 模块,然后定义了一个字符串日期和日期格式。通过调用 strptime() 函数,并传入字符串日期和日期格式作为参数,我们可以得到一个 datetime 对象。最后,我们使用 date() 方法获取日期部分,并打印出来。

使用 dateutil.parser.parse() 函数

除了使用 strptime() 函数,我们还可以使用 dateutil.parser 模块中的 parse() 函数来实现字符串日期的转换。这个函数非常灵活,可以自动识别字符串日期的格式。下面是一个示例:

from dateutil import parser

date_string = "2022-05-30"

date = parser.parse(date_string).date()
print(date)

在上面的代码中,我们首先导入了 dateutil.parser 模块,然后定义了一个字符串日期。通过调用 parse() 函数,并传入字符串日期作为参数,我们可以得到一个 datetime 对象。最后,我们使用 date() 方法获取日期部分,并打印出来。

类图

下面是一个使用字符串日期转换为 date 的类图:

classDiagram
    class StringToDate {
        <<class>>
        + str_to_date(date_string: str, date_format: str): date
    }

总结

通过使用 datetime 模块,我们可以很方便地将字符串日期转换为 date 类型。本文介绍了两种常用的方法:使用 strptime() 函数和使用 dateutil.parser.parse() 函数。通过这些方法,我们可以根据日期的格式将字符串日期转换为 date 类型,并进行后续的操作。希望本文对你理解和应用字符串日期转换有所帮助。

引用

  • [datetime — Basic date and time types — Python 3.9.7 documentation](
  • [dateutil.parser — Date string parsing — Python 3.9.7 documentation](