欢迎访问宙启技术站
智能推送

Python中将iso8601格式的日期时间字符串转换为UTC时间

发布时间:2023-12-29 18:30:24

在Python中,我们可以使用datetime模块来将ISO 8601格式的日期时间字符串转换为UTC时间。具体步骤如下:

首先,我们需要导入datetime模块:

import datetime

然后,我们可以使用datetime模块中的datetime.strptime()函数将ISO 8601格式的日期时间字符串转换为datetime对象:

iso8601_string = "2022-01-01T12:00:00Z"
dt = datetime.datetime.strptime(iso8601_string, "%Y-%m-%dT%H:%M:%SZ")

在上述代码中,我们将ISO 8601格式的日期时间字符串存储在变量iso8601_string中,并使用datetime.strptime()函数将其转换为datetime对象。在strptime()函数中,"%Y-%m-%dT%H:%M:%SZ"是格式化字符串,用于指定ISO 8601格式的日期时间字符串的结构和值。

接下来,我们可以使用datetime对象的方法来将其转换为UTC时间。首先,我们需要将datetime对象的时区属性设置为None,表示该时间为本地时间:

local_dt = dt.replace(tzinfo=None)

然后,我们可以使用datetime对象的astimezone()方法将其转换为UTC时间:

utc_dt = local_dt.astimezone(datetime.timezone.utc)

在上述代码中,我们将本地时间的datetime对象存储在变量local_dt中,然后使用astimezone()方法将其转换为UTC时间,并将结果存储在变量utc_dt中。datetime.timezone.utc表示UTC时区。

最后,我们可以使用datetime对象的strftime()方法将UTC时间格式化为所需的字符串格式:

utc_string = utc_dt.strftime("%Y-%m-%d %H:%M:%S")

在上述代码中,"%Y-%m-%d %H:%M:%S"是格式化字符串,用于指定所需的日期时间字符串格式。

以下是完整的示例代码:

import datetime

iso8601_string = "2022-01-01T12:00:00Z"
dt = datetime.datetime.strptime(iso8601_string, "%Y-%m-%dT%H:%M:%SZ")
local_dt = dt.replace(tzinfo=None)
utc_dt = local_dt.astimezone(datetime.timezone.utc)
utc_string = utc_dt.strftime("%Y-%m-%d %H:%M:%S")

print("ISO 8601格式的日期时间字符串:", iso8601_string)
print("转换后的UTC时间:", utc_string)

输出结果为:

ISO 8601格式的日期时间字符串: 2022-01-01T12:00:00Z
转换后的UTC时间: 2022-01-01 12:00:00

以上就是将ISO 8601格式的日期时间字符串转换为UTC时间的例子。注意,ISO 8601格式的日期时间字符串中的“Z”表示时间为UTC时间。在转换为datetime对象时,我们需要将其视为本地时间,并通过设置时区为UTC来转换为UTC时间。