Python 更改时间字符串的UTC偏移量

Python 更改时间字符串的UTC偏移量,python,python-3.x,Python,Python 3.x,我想将时间更改为手动选择的时间字符串偏移量 在本例中,我将从时间中减去11小时,但utc偏移量仍然是00:00。。如何才能正确地执行此操作 time = "2020-03-03T18:21:19+00:00" utc_diff = 2 obj1 = datetime.datetime.strptime( re.sub(r"([\+-]\d\d):(\d\d)(?::(\d\d(?:.\d+)?))?", r"\1\2\3", time),

我想将时间更改为手动选择的时间字符串偏移量 在本例中,我将从时间中减去11小时,但utc偏移量仍然是00:00。。如何才能正确地执行此操作

    time = "2020-03-03T18:21:19+00:00"
    utc_diff = 2
    obj1 = datetime.datetime.strptime(
        re.sub(r"([\+-]\d\d):(\d\d)(?::(\d\d(?:.\d+)?))?", r"\1\2\3", time),
        "%Y-%m-%dT%H:%M:%S%z")
    obj1 = obj1 - datetime.timedelta(hours=-utc_diff)
使用这个例子,结果将是

“2020-03-03T20:21:19+00:00”

但我希望偏移量也改变,:

“2020-03-03T20:21:19+02:00”


您可以直接将整数值传递给datetime.timedelta(小时=11)

这应该可以满足您的需要:

def utc_offset(time, offset):
    def pad(number):
        n = str(abs(number))

        while len(n) < 2:
            n = "0" + n

        if number >= 0:
            n = "+" + n
        else:
            n = "-" + n
        return n

    utc_diff_format = f"{pad(offset)}:00"

    time = list(time)
    i = time.index("+")
    time[i:] = list(utc_diff_format)
    time = ''.join(time)

    return time

time = "2020-03-03T18:21:19+00:00"
utc_diff = 2

print(utc_offset(time, utc_diff))

是,但utc偏移量仍将为00:00。。那么改成11点了?
2020-03-03T18:21:19+02:00