如何将数字时区转换为UTC?
How to convert timezone in number to UTC?
我有一些不同时区的随机日期,它们的格式类似于 "07 Mar 2022 13:52:00 -0300"
,或者它们可能像这样:"07 Mar 2022 11:12:00 -0700"
。我不知道他们将来自哪个时区。如何将它们全部转换为 UTC 时间 "0000Z"
?
我建议 import datetime
,然后使用以下方法将您的时间戳转换为日期时间对象(其中 str 是字符串形式的时间戳):time_stamp = datetime.strptime(str, "%d %b %Y")
(其中后面的参数str 提供有关格式的信息;有关详细信息,请参见此处:https://www.programiz.com/python-programming/datetime/strptime).
之后,您可以使用datetime.astimezone()
将其转换为另一个时区。
您可以为此使用标准模块 datetime。
函数 strptime()
(string parsing time
) 可以使用匹配模式将字符串转换为对象 datetime
。对于您的示例作品模式 '%d %b %Y %H:%M:%S %z'
接下来可以用.astimezone(datetime.timezone.utc)
转换成UTC
。
稍后您可以使用 strftime()
(string formatting time
) 再次使用模式 '%d %b %Y %H:%M:%S %z'
格式化字符串(或者您可以跳过 %z
)
最小工作代码:
import datetime
data = [
"07 Mar 2022 13:52:00 -0300",
"07 Mar 2022 11:12:00 -0700",
]
for item in data:
print('before str:', item)
dt = datetime.datetime.strptime(item, '%d %b %Y %H:%M:%S %z')
print('before dt :', dt)
dt = dt.astimezone(datetime.timezone.utc)
print('after dt :', dt)
print('after str:', dt.strftime('%d %b %Y %H:%M:%S %z'))
print('---')
结果:
before str: 07 Mar 2022 13:52:00 -0300
before dt : 2022-03-07 13:52:00-03:00
after dt : 2022-03-07 16:52:00+00:00
after str: 07 Mar 2022 16:52:00 +0000
---
before str: 07 Mar 2022 11:12:00 -0700
before dt : 2022-03-07 11:12:00-07:00
after dt : 2022-03-07 18:12:00+00:00
after str: 07 Mar 2022 18:12:00 +0000
---
我有一些不同时区的随机日期,它们的格式类似于 "07 Mar 2022 13:52:00 -0300"
,或者它们可能像这样:"07 Mar 2022 11:12:00 -0700"
。我不知道他们将来自哪个时区。如何将它们全部转换为 UTC 时间 "0000Z"
?
我建议 import datetime
,然后使用以下方法将您的时间戳转换为日期时间对象(其中 str 是字符串形式的时间戳):time_stamp = datetime.strptime(str, "%d %b %Y")
(其中后面的参数str 提供有关格式的信息;有关详细信息,请参见此处:https://www.programiz.com/python-programming/datetime/strptime).
之后,您可以使用datetime.astimezone()
将其转换为另一个时区。
您可以为此使用标准模块 datetime。
函数 strptime()
(string parsing time
) 可以使用匹配模式将字符串转换为对象 datetime
。对于您的示例作品模式 '%d %b %Y %H:%M:%S %z'
接下来可以用.astimezone(datetime.timezone.utc)
转换成UTC
。
稍后您可以使用 strftime()
(string formatting time
) 再次使用模式 '%d %b %Y %H:%M:%S %z'
格式化字符串(或者您可以跳过 %z
)
最小工作代码:
import datetime
data = [
"07 Mar 2022 13:52:00 -0300",
"07 Mar 2022 11:12:00 -0700",
]
for item in data:
print('before str:', item)
dt = datetime.datetime.strptime(item, '%d %b %Y %H:%M:%S %z')
print('before dt :', dt)
dt = dt.astimezone(datetime.timezone.utc)
print('after dt :', dt)
print('after str:', dt.strftime('%d %b %Y %H:%M:%S %z'))
print('---')
结果:
before str: 07 Mar 2022 13:52:00 -0300
before dt : 2022-03-07 13:52:00-03:00
after dt : 2022-03-07 16:52:00+00:00
after str: 07 Mar 2022 16:52:00 +0000
---
before str: 07 Mar 2022 11:12:00 -0700
before dt : 2022-03-07 11:12:00-07:00
after dt : 2022-03-07 18:12:00+00:00
after str: 07 Mar 2022 18:12:00 +0000
---