如何使用datetime.strptime处理12:00格式的时间字符串?
解决datetime.strptime的格式匹配问题
嘿,这个错误很好解决,核心问题就是格式字符串的分隔符和你的时间字符串不匹配:
你写的格式是%I, %M,这里用了逗号来分隔小时和分钟,但你的时间字符串是12:00,用的是冒号分隔,这就导致解析时无法匹配,直接抛出了ValueError。
正确的格式写法
根据你的时间字符串12:00,应该用%I:%M作为格式参数:
%I:代表12小时制的小时数(范围是1-12,适合表示上午/下午的时间,比如12:00可以是中午或午夜)::对应时间字符串里的冒号分隔符%M:代表分钟数(00-59)
修正后的完整代码
另外注意你原来的代码有两个小问题:一是模块导入语法错误(import time import pandas应该分开写),二是没正确导入datetime模块。修正后的代码如下:
from datetime import datetime # 如果需要用到time或pandas,单独导入 import time import pandas as pd tm = '12:00' dt = datetime.strptime(tm, '%I:%M') print(dt) # 输出示例:1900-01-01 12:00:00(因为没指定日期,默认用1900-01-01)
额外说明
如果你的时间是24小时制的(比如13:00代表下午1点,00:00代表午夜),那应该把格式改成%H:%M,其中%H对应24小时制的小时数(范围0-23)。
内容的提问来源于stack exchange,提问作者DreLightfoot
相关产品推荐
相关产品推荐

