Python datetime模块strptime解析12小时制时间时AM/PM不生效问题
问题解决方法
问题根源
- 你当前使用的
%H为24小时制小时格式符,当strptime匹配到该格式符时会直接忽略后续的%p(AM/PM标识)参数,因此不会自动根据AM/PM调整小时数值。
解决方案
将格式串中的24小时制格式符%H替换为12小时制格式符%I即可。
修正后代码
import datetime as tm ts = tm.datetime.strptime('12/11/2020 8:25:52 AM', '%d/%m/%Y %I:%M:%S %p') ts2 = tm.datetime.strptime('12/11/2020 8:25:52 PM', '%d/%m/%Y %I:%M:%S %p') print(ts) print(ts2) print(ts == ts2)
运行输出
2020-11-12 08:25:52 2020-11-12 20:25:52 False
注意事项
- 该规则自动适配12点边界场景:
12:00:00 AM会被解析为00:00,12:00:00 PM会被解析为12:00,无需额外手动调整。
内容的提问来源于stack exchange,提问作者Cristality_
相关产品推荐
相关产品推荐

