在时间增量函数中获取未转换的数据错误

Getting unconverted data error in time delta function

当尝试格式化 s1, s2 然后计算时间增量时,我得到下面列出的输出。这可能是因为我使用 replace() 不正确(两个问题中的一个似乎是)或者有一个 strftime() 。我认为这是因为输出 ValueError("unconverted data remains: %s" % ValueError: unconverted data remains: PM 但我不完全理解错误代码并且无法自己解决问题。谁能帮我修复我不太专业的代码?哈哈。或者可能 point/create 我使用一个更高效的 timedelta 计算器,它使用 STD 时间并在需要的地方附加 PM 和 AM?

我的代码:

from datetime import datetime, date
import pytz


s1 = '11:00PM'
s2 = '12:00PM'

def timedelta(a, b):
    chars = ['AM', 'PM']
    for i in chars:
        a.replace(i, '')
        b.replace(i, '')
    FMT = '%H:%M'
    tdelta = datetime.strptime(b, FMT) - datetime.strptime(a, FMT)
    return tdelta

print(timedelta(s1, s2))

此代码可能已损坏,因为我自己在最后一刻对其进行了一些修改以尝试修复此问题。如果需要,请索要原件(工作原理相同且输出相同)!感谢您的帮助!
输出(windows 命令):

Traceback (most recent call last):
  File "t.py", line 19, in <module>
    print(timedelta())
  File "t.py", line 16, in timedelta
    tdelta = datetime.strptime(s2, FMT) - datetime.strptime(s1, FMT)
  File "C:\Users\danie\AppData\Local\Programs\Python\Python38-32\lib\_strptime.py", line 568, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
  File "C:\Users\danie\AppData\Local\Programs\Python\Python38-32\lib\_strptime.py", line 352, in _strptime
    raise ValueError("unconverted data remains: %s" %
ValueError: unconverted data remains: PM

想要的输出:

1:00

替换后需要赋值给ab:

from datetime import datetime, date
import pytz


s1 = '11:00PM'
s2 = '12:00PM'

def timedelta(a, b):
    chars = ['AM', 'PM']
    for i in chars:
        a = a.replace(i, '')
        b = b.replace(i, '')
    FMT = '%H:%M'
    tdelta = datetime.strptime(b, FMT) - datetime.strptime(a, FMT)
    return tdelta

print(timedelta(s1, s2))