You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 21:05:01