ValueError: 时间数据 '24:00' 不符合格式 '%H:%M

4 投票
1 回答
10183 浏览
提问于 2025-04-18 16:01

我在把24小时制的时间转换成12小时制的时候遇到了很大的麻烦。

def standard_time(t):     
    t = datetime.strptime(t, "%H:%M")
    return t

当输入 '24:00' 时,我们得到

ValueError: time data '24:00' does not match format '%H:%M'

我还尝试用 %I(12小时制)来转换,而不是 %H,但每当小时超过12时就会出错:

def standard_time(t):     
    t = datetime.strptime(t, "%I:%M")
    return t

有点卡住了...

ValueError: time data '13:30' does not match format '%I:%M'

Python有没有简单的24小时到12小时的转换工具?理想情况下,23:00应该输出11:00 PM,而24:00不应该报错!

1 个回答

12

你需要把 24:00 表示成 00:00。在24小时制中,最后一个时间是 23:59,再往后就是 00:00

比如说,如果你现在是 23:59,再加上一分钟

>>> a = datetime(1900, 1, 1, 23, 59)
>>> from datetime import timedelta
>>> a + timedelta(minutes=1)
datetime.datetime(1900, 1, 2, 0, 0)

你就会得到下一个日期的 00:00

撰写回答