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

Flutter中如何按自定义格式显示当前日期?

Flutter实现「October 25,Monday」格式日期的最优方案

首选方案是使用Flutter官方维护的intl包实现,无需手动处理日期映射逻辑,兼容性和扩展性都最优,具体步骤如下:

  • 第一步:添加依赖
    在pubspec.yaml的dependencies节点下添加兼容版本的intl依赖,示例:
dependencies:
  flutter:
    sdk: flutter
  intl: ^0.18.1 # 可按需更换为适配当前Flutter版本的最新稳定版

添加后执行flutter pub get完成依赖安装。

  • 第二步:代码格式化日期
    首先在需要使用的文件顶部导入intl包:
    import 'package:intl/intl.dart';
    调用DateFormat类按指定规则格式化当前时间即可:
// 获取当前系统时间
DateTime currentTime = DateTime.now();
// 格式规则:MMMM=英文全称月份、d=日期数字、EEEE=英文全称星期
String formattedDate = DateFormat('MMMM d,EEEE').format(currentTime);
  • 第三步:页面渲染
    直接把格式化后的字符串放到展示组件中即可:
Text(formattedDate)

方案优势

  • 无需手动维护月份、星期的映射表,完全规避了手写匹配的错误风险,也不用处理闰年、不同月份天数等边界问题
  • 格式调整灵活,后续如果需要修改展示样式,仅需调整DateFormat的参数即可,比如要添加年份只需把规则改为'MMMM d,EEEE y'
  • 原生支持多语言本地化,如需适配其他语言的日期展示,只需配置对应locale即可,无需修改核心逻辑

无第三方依赖降级方案

如果项目不允许引入额外依赖,可以手动维护映射表实现,仅适合固定英文展示的极简场景:

// 英文月份全称映射
const List<String> monthList = [
  'January', 'February', 'March', 'April', 'May', 'June',
  'July', 'August', 'September', 'October', 'November', 'December'
];
// 英文星期全称映射
const List<String> weekdayList = [
  'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'
];

DateTime now = DateTime.now();
String formattedDate = '${monthList[now.month - 1]} ${now.day},${weekdayList[now.weekday - 1]}';

注意:该方案不支持多语言适配,后续调整格式的维护成本更高,非特殊情况不推荐使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:45:02