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

Flutter中如何在Text组件格式化显示00:00:00格式时长

Flutter实现00:00:00格式时长显示的简便方法

给你两种不用写一堆if判断的解决方案:

方案一:原生字符串补位(无需额外依赖)

Flutter的字符串自带padLeft方法,专门用来给字符串补位,正好解决你的问题。它会把字符串填充到指定长度,不足部分在左侧补指定字符。

直接修改你的代码即可:

Text(
  "temps : ${hours.toString().padLeft(2, '0')}:${minutes.toString().padLeft(2, '0')}:${seconds.toString().padLeft(2, '0')}",
  style: const TextStyle(
    fontSize: 24,
  ),
),

举个例子:如果hours是4,转成字符串后是"4",padLeft(2, '0')会把它变成"04";如果是13,字符串长度已经是2,就不会额外补0,完美避免你之前遇到的013这类错误。

方案二:用intl包(适合复杂时间场景)

如果你之后还要处理更多日期时间相关的格式化需求,可以用官方推荐的intl包:

  1. 先在pubspec.yaml中添加依赖:
dependencies:
  flutter:
    sdk: flutter
  intl: ^0.18.1 # 可替换为最新版本
  1. 在代码文件中导入包:
import 'package:intl/intl.dart';
  1. 用DateFormat格式化时长:
Text(
  "temps : ${DateFormat("HH:mm:ss").format(DateTime(0, 0, 0, hours, minutes, seconds))}",
  style: const TextStyle(
    fontSize: 24,
  ),
),

这里HH代表两位24小时制小时,mm是两位分钟,ss是两位秒,会自动帮你补全不足两位的数字。

内容的提问来源于stack exchange,提问作者Kach

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:42:04