strptime 未转换的数据仍然存在

问题描述 投票:0回答:2

我有一个字符串,我想将其转换为以下格式的日期时间:

'31-12-2022:24'

最后两位数字是小时。我尝试了以下方法来转换它:

dt = datetime.strptime(z[1], '%d-%m-%Y:%H').date()

但是得到如下错误:

ValueError: unconverted data remains: 4

为什么只选择第一个数字?我有一个解决方法,拆分字符串并在重新加入之前分别转换它们,但我想在一行中完成。

我最理想的是一个日期时间对象,它允许我对两个日期(编辑*和时间)之间的差异进行一些数学运算,我认为这在日期时间格式中最简单?

python pandas datetime strptime
2个回答
2
投票

您可以拆分值和小时数转换为时间增量,因为

24H
%H
无效:

z = '31-12-2022:24'

a,b = z.split(':')

dt = pd.to_datetime(a, format='%d-%m-%Y') + pd.to_timedelta(int(b), unit='H')
print (dt)
2023-01-01 00:00:00

0
投票

问题出在您的日期值上,因为没有 24 小时这样的时间。 如果您的字符串是正确的,例如: '31-12-2022:12' 应该可以吧

© www.soinside.com 2019 - 2024. All rights reserved.