如何在 Python 中将日期转换为日期时间?

2025年1月5日 | 阅读 4 分钟

Python 的 datetime 模块提供了用于处理日期和时间的类。有时,您需要将需要时间数据的日期更改为完整的 datetime 对象。根据提供的数据格式,有多种在 Python 中转换日期的方法。

以下是在 Python 中将日期转换为日期时间的方法:

  1. 使用 datetime.datetime.combine():此函数通过组合日期对象和指定的时间来构造一个 datetime 对象。
  2. 使用 strptime():如果要将日期解析为 datetime 对象,并且该日期是字符串格式,请使用 strptime() 函数。
  3. 使用 pandas DataFrame 和 pd.to_datetime():在使用 pandas DataFrame 时,可以使用 pd.to_datetime() 将日期列转换为 datetime。

现在,让我们更详细地介绍每种方法。

使用 datetime.datetime.combine() 方法

  • 在 Python 中,time 对象表示一天中的特定时间,而 date 对象表示不带任何时间信息的日期。
  • 日期和时间数据被组合成一个名为 datetime 对象的数据项。
  • combine() 函数通过接受两个参数(一个 date 对象和一个 time 对象)来创建一个新的 datetime 对象。
  • 实质上,它通过组合 time 对象的时间和 date 对象的日期来创建一个完整的 datetime。

代码

输出

 
2024-04-21 12:00:00   

示例

代码

输出

 
2024-04-21 15:30:00   

使用 strptime() 方法

  • 日期和时间通常以不同格式的字符串表示,例如“DD/MM/YYYY”或“YYYY-MM-DD”。
  • 您可以通过使用 strptime() 函数从这些字符串表示形式创建 datetime 对象。
  • strptime() 需要两个输入:要解析的字符串和显示字符串格式的格式字符串。
  • 格式字符串中包含指令,这些指令指定了字符串的每个部分应如何解析。

代码

输出

 
2024-04-21 00:00:00   

strptime() 中的格式代码 %Y、%m 和 %d 分别代表年份、月份和日期。格式字符串必须更改以匹配您的日期字符串的格式。

处理更复杂的日期格式

示例

代码

输出

 
2024-04-21 00:00:00   

使用 pd.to_datetime() 方法(用于 pandas DataFrame)

  • Pandas 为 Python 的日期时间功能增加了数据操作和分析的额外功能。
  • 使用 pd.to_datetime() 可以更有效地处理 Pandas DataFrame 和 Series。
  • 可以将 pd.to_datetime() 应用于 Series 或 DataFrame 列。
  • 它会自动将多种日期文本格式转换为 pandas datetime 对象。

代码

输出

 
         date         datetime
0  2024-04-21  2024-04-21
1  2024-04-22  2024-04-22
2  2024-04-23  2024-04-23   

该代码创建一个具有三个日期字符串的 DataFrame,这些字符串位于 date 列中。接下来,它使用 pd.to_datetime() 将此日期列转换为 datetime,并将结果存储在一个名为“datetime”的新列中。

示例

代码

输出

 
     year     month   day     datetime
0   2024.0    4.0       21.0   2024-04-21
1     NaN    NaN     22.0        NaT
2     NaN    4.0        23.0        NaT   

此代码首先构造一个具有三列的 DataFrame,用于表示年、月和日。然后,它将这三列合并到一个 datetime 对象中,以提供“datetime”列。

由于第二个 DataFrame 包含缺失值 (NaN),它通过使用 errors='coerce' 选项将 DataFrame 转换为 datetime 来处理缺失值。因此,'datetime' 列中在年、月或日列中具有缺失值的记录将更改为 NaT (Not a Time)。

结论

总之,Python 提供了多种方法,每种方法都有独特的优点和应用,用于将日期转换为 datetime 对象。

  • 借助 `datetime.datetime.combine()`:当您希望将不同的日期和时间组件组合成一个 datetime 对象时,此方法效果很好。它易于使用,并为您提供了对生成的 datetime 的精确控制。
  • 利用 'strptime()':当使用多种格式的日期字符串时,'strptime()' 是一个非常有用的函数。它以给定的格式字符串为指南,将包含日期和/或时间的文本解析为 datetime 对象。这种灵活的方法可以处理各种日期格式。
  • 使用 pandas DataFrame 和 pd.to_datetime():在使用 pandas DataFrame 时,将日期类字符串或列转换为 datetime 对象的推荐方法是使用 pd.to_datetime()。对于涉及数据分析和准备的任务,它因其卓越的灵活性和效率,以及处理广泛日期格式和情况的能力而至关重要。

如果您能掌握这些技术,就可以使用 pandas 进行更复杂的数据分析任务,或者使用基本的 Python 对象来高效地处理日期和时间数据。根据您的数据格式和项目需求,选择最适合您需求的方法。