将 GMT 时间转换为 UTC 时间

convert time GMT to UTC

我正在尝试将收到的时间转换为 GMT 时间,但我使用 strptime 按时间格式呈现详细信息。

from datetime import tzinfo, timedelta, datetime

ZERO = timedelta(0)

class FixedOffset(tzinfo):
    """Fixed UTC offset: `local = utc + offset`."""

    def __init__(self, offset, name):
        self.__offset = timedelta(hours=offset)
        self.__name = name

    def utcoffset(self, dt):
        return self.__offset

    def tzname(self, dt):
        return self.__name

    def dst(self, dt):
        return ZERO

utc = FixedOffset(0, "UTC")

下面的代码显示了我要转换的数据。

Time = ("14:50:21.000 GMT Fri Apr 29 2022")
dt = datetime.strptime(Time , "%H:%M:%% GMT %% %% %% %%")
aware = dt.replace(tzinfo=FixedOffset(5, "GMT 0"))
print(aware)                 
print(aware.astimezone(utc))

Return 留言

ValueError: time data '14:50:21.000 GMT Fri Apr 29 2022' does not match format '%H:%M:%% GMT %% %% %% %%'

%% 用于 % 字符 不在您的源时间格式中 试试这个格式

dt = datetime.strptime(Time , "%H:%M:%S GMT %a %b %d %Y")

dt = datetime.strptime(Time , "%H:%M:%S %Z %a %b %d %Y")

您可以阅读更多here格式参数的公式