如何优化12小时制时间转24小时制的Python实现代码
12小时制转24小时制Python代码优化方案
原有代码虽然能跑通你给出的测试用例,但存在几处可优化的问题:
- 12小时制的格式化符号用错:
%H是24小时制小时标识,12小时制对应应该用%I,原有代码处理12点时段的AM/PM场景时会报错或输出错误结果 - 不需要手动计算时间差值:datetime解析12小时制时间后本身就包含正确的24小时制时间信息,直接输出即可,逻辑更简洁
- import语句放在函数内部:每次调用函数都会重复执行导入逻辑,移到函数外性能更优
优化后代码
import datetime as dt def change_time(time_str: str) -> str: # %I对应12进制小时,%p匹配AM/PM标识 FMT12 = '%I:%M:%S %p' FMT24 = '%H:%M:%S' return dt.datetime.strptime(time_str, FMT12).strftime(FMT24)
如果你需要和原有代码保持一致返回
datetime.time类型而非字符串,只需将return语句修改为:return dt.datetime.strptime(time_str, FMT12).time()
测试验证
所有场景均能正常输出正确结果:
- 运行
print(change_time('09:52:08 PM'))输出21:52:08,和原有测试结果一致 - 边界场景测试:
change_time('12:00:00 AM')输出00:00:00change_time('12:30:00 PM')输出12:30:00change_time('11:59:59 AM')输出11:59:59
内容的提问来源于stack exchange,提问作者Asma
相关产品推荐
相关产品推荐

