Flutter中如何将字符串格式时间转换为带am/pm的12小时制
24小时制时间字符串转12小时制格式实现方案
核心思路
通过时间解析与格式化工具,将24小时制的时间字符串转换为12小时制并附加am/pm标识,重点处理0点→12 am、12点→12 pm的特殊转换,以及小时前导零的去除。
Python 实现代码
from datetime import datetime def convert_24_to_12(time_str): # 解析24小时制时间字符串 time_obj = datetime.strptime(time_str, "%H:%M:%S") # 初始格式化(带前导零和大写AM/PM) temp_format = time_obj.strftime("%I:%M %p") # 转为小写并去除小时前导零 formatted_time = temp_format.lower() if formatted_time[0] == "0": formatted_time = formatted_time[1:] return formatted_time # 测试用例 print(convert_24_to_12("00:00:00")) # 输出: 12:00 am print(convert_24_to_12("13:00:00")) # 输出: 1:00 pm print(convert_24_to_12("08:15:30")) # 输出: 8:15 am print(convert_24_to_12("12:30:00")) # 输出: 12:30 pm print(convert_24_to_12("23:45:00")) # 输出: 11:45 pm
关键细节说明
strptime("%H:%M:%S"):严格按照HH:MM:SS格式解析输入字符串,确保24小时制时间被正确识别strftime("%I:%M %p"):%I生成12小时制小时(01-12),%p生成AM/PM标识,后续转小写匹配需求- 前导零处理:针对
01:00 am这类带前导零的结果,通过字符串切片去除首位的0,得到符合要求的1:00 am格式
内容的提问来源于stack exchange,提问作者Dhruvil Patel
相关产品推荐
相关产品推荐

