Flutter intl 基础使用 逗号分割数字

intlFlutter中的一个国际化(Internationalization)库,用于处理多语言和本地化相关的功能。

intl库提供了以下主要功能:

  • 日期和时间格式化:用于将日期和时间对象格式化为不同的语言和地区的习惯样式。
  • 数字格式化:用于将数字对象格式化为不同的语言和地区的习惯样式。
  • 消息翻译:用于将文本消息翻译为不同的语言。

使用intl库,首先需要 Flutter 项目的 pubspec.yaml文件中添加依赖项:

makefile 复制代码
intl: ^0.17.0

1 日期和时间格式化:

dart 复制代码
  // 获取当前时间
  DateTime now = DateTime.now();

  // 定义一个日期时间格式
  DateFormat dateFormat = DateFormat('yyyy-MM-dd HH:mm:ss');

// 使用格式将当前时间格式化为字符串
  String formattedDateTime = dateFormat.format(now);

  debugPrint("当前时间 $now");
  debugPrint("格式化的时间 $formattedDateTime");

2. 数字格式化

常用的也就是 保留小数位数、长数字分割、百分比转换

四舍五入保留两位小数

scss 复制代码
String format = NumberFormat("###.0#").format(12.6589);
//12.66 四舍五入保留两位小数
debugPrint("format $format");

数字使用,号分割

scss 复制代码
//数字使用,号分割
String decimalPattern = NumberFormat.decimalPattern().format(1200000);
//输出 1,200,000
debugPrint("decimalPattern $decimalPattern");

数字转百分比

scss 复制代码
//数字转百分比
String decimalPercentPattern =
    NumberFormat.decimalPercentPattern().format(0.23);
//输出 23%
debugPrint("decimalPercentPattern $decimalPercentPattern");

最后分享一个小工具类

typescript 复制代码
///格式化工具类
class FormatUtil {
  ///日期格式
  static const String ymdHms = "yyyy-MM-dd HH:mm:ss";

  /// 格式化数值
  /// var f = NumberFormat("###.0#", "en_US");
  /// print(f.format(12.345));
  /// ==> 12.34
  static String formatNumber(
      {String pattern = '###.0#', dynamic number, String? locale}) {
    return NumberFormat(pattern, locale).format(number);
  }

  ///逗号分割数值
  static String decimalPattern(
      { dynamic number, String? locale}) {
    return  NumberFormat.decimalPattern(locale).format(number);
  }
  /// 格式化日期
  /// "yyyy-MM-dd HH:mm:ss"
  static String formatDate(
      {String pattern = 'yyyy-MM-dd HH:mm:ss', required DateTime date}) {
    return DateFormat(pattern).format(date);
  }

  /// 格式化毫秒日期
  /// "yyyy-MM-dd HH:mm:ss"
  static String formatMilliseconds(String pattern, int milliseconds) {
    return formatDate(
      pattern: pattern,
      date: DateTime.fromMillisecondsSinceEpoch(milliseconds),
    );
  }
}
相关推荐
sugar_hang10 小时前
Flutter 中的 TCP
flutter
子春一12 小时前
Flutter for OpenHarmony:形状拼图:基于路径几何与空间吸附的交互式拼图系统架构解析
flutter·系统架构
ujainu21 小时前
Flutter + OpenHarmony 游戏开发进阶:用户输入响应——GestureDetector 实现点击发射
flutter·游戏·openharmony
hudawei99621 小时前
TweenAnimationBuilder和AnimatedBuilder两种动画的比较
flutter·ui·动画·tweenanimation·animatedbuilder
ujainu21 小时前
Flutter + OpenHarmony 实现无限跑酷游戏开发实战—— 对象池化、性能优化与流畅控制
flutter·游戏·性能优化·openharmony·endless runner
ZH15455891311 天前
Flutter for OpenHarmony Python学习助手实战:自动化脚本开发的实现
python·学习·flutter
晚烛1 天前
CANN + 物理信息神经网络(PINNs):求解偏微分方程的新范式
javascript·人工智能·flutter·html·零售
一起养小猫1 天前
Flutter for OpenHarmony 实战:扫雷游戏完整开发指南
flutter·harmonyos
晚烛1 天前
CANN 赋能智慧医疗:构建合规、高效、可靠的医学影像 AI 推理系统
人工智能·flutter·零售
晚霞的不甘1 天前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d