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

Flutter中如何将DateTime仅格式化显示时间,去除日期与年份?

Flutter DateTime仅显示时间部分的格式化方案

你可以通过两种方式实现只显示DateTime的时间部分,去掉日期和年份:

方法一:使用intl包(推荐,支持灵活格式与多语言)

  1. 先在pubspec.yaml中添加依赖:
dependencies:
  intl: ^0.18.1 # 版本号可根据最新情况调整
  1. 执行flutter pub get安装依赖后,在代码中导入包:
import 'package:intl/intl.dart';
  1. 格式化日出日落时间,替换原来的Text组件内容:
Text(
  DateFormat('HH:mm').format(vSunrise), // 24小时制,如"06:30"
  // 或者用12小时制带AM/PM:DateFormat.jm().format(vSunrise),如"6:30 AM"
  textAlign: TextAlign.left,
  style: TextStyle(
    fontWeight: FontWeight.w600,
    fontSize: 14.sp,
    letterSpacing: 0.2,
    color: AppTheme.grey,
  ),
),

你可以根据需求自定义格式字符串,比如'h:mm a'对应12小时制带上午/下午标识,'HH:mm:ss'显示时分秒。

方法二:原生代码实现(无需第三方包)

如果不想依赖intl包,可以直接提取DateTime的小时和分钟,处理补零逻辑后拼接:

// 封装一个格式化函数
String formatTime(DateTime time) {
  String hour = time.hour.toString().padLeft(2, '0');
  String minute = time.minute.toString().padLeft(2, '0');
  return '$hour:$minute';
}

// 使用时
Text(
  formatTime(vSunrise),
  textAlign: TextAlign.left,
  style: TextStyle(
    fontWeight: FontWeight.w600,
    fontSize: 14.sp,
    letterSpacing: 0.2,
    color: AppTheme.grey,
  ),
),

这种方式适合简单的时间格式化场景,不需要额外依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 21:40:21