📜  将 str 转换为日期时间 - Python (1)

📅  最后修改于: 2023-12-03 15:39:13.551000             🧑  作者: Mango

将 str 转换为日期时间 - Python

在 Python 中,我们可以通过 datetime.datetime.strptime() 方法将字符串格式的日期时间转换成 datetime.datetime 类型的对象。这一方法的使用非常简单,只需要先指定字符串的格式,再将字符串传入即可。

例如,如果我们有如下字符串:"2020-01-01 12:00:00",我们可以这样转换为日期时间对象:

import datetime

time_str = "2020-01-01 12:00:00"
time_format = "%Y-%m-%d %H:%M:%S"
datetime_obj = datetime.datetime.strptime(time_str, time_format)
print(datetime_obj)

输出结果:

2020-01-01 12:00:00

在上面的代码中,time_str 是我们要转换的字符串,time_format 则指定了字符串的格式。这里的格式是 %Y-%m-%d %H:%M:%S,其中 %Y 表示年份,%m 表示月份,%d 表示日期,%H 表示小时,%M 表示分钟,%S 表示秒,这些都是在字符串中按照顺序排列的。

除了以上的格式外,还有很多其他的日期时间格式,可以参考 Python 官方文档中的 时间格式化指令

需要注意的是,在使用 strptime() 方法时,需要保证设置的格式与字符串格式一致,否则就会出现转换失败的情况。

这里还有一种情况,就是要将带有时区(如 UTC、GMT)的字符串转换为日期时间对象,可以使用第三方库 pytz,如下所示:

import datetime
import pytz

time_str = "2020-01-01T12:00:00Z"
time_format = "%Y-%m-%dT%H:%M:%SZ"
timezone = pytz.UTC
datetime_obj = datetime.datetime.strptime(time_str, time_format).replace(tzinfo=timezone)
print(datetime_obj)

在上面的代码中,time_str 是一个带有时区信息的字符串,time_format 指定了字符串的格式。由于这个时间字符串是以 UTC 时间为基准的,因此我们引入了 pytz 库中的 UTC 时区对象,将其作为 replace() 方法中的 tzinfo 参数传入。最终得到的 datetime_obj 对象就包含了时区信息。

注意:如果没有安装 pytz 库,可以通过 pip 进行安装:pip install pytz

以上就是将字符串格式的日期时间转换成 datetime.datetime 类型对象的方法,希望对大家有所帮助!