在时间增量函数中获取未转换的数据错误
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
替换后需要赋值给a
和b
:
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))
当尝试格式化 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
替换后需要赋值给a
和b
:
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))