flutter 格式化时间

本文介绍了一个使用Dart语言中的intl包来格式化当前时间的方法,通过DateFormat类和DateTime.now()函数,可以将当前时间格式化为yyyy-MM-dd HH:mm:ss的字符串格式。
import 'package:intl/intl.dart';

DateFormat("yyyy-MM-dd HH:mm:ss").format(DateTime.now());
Flutter/Dart 中进行字符串格式化时,可以通过多种方式实现,包括使用内置的 `String` 方法、`intl` 包(用于国际化支持)等。以下是一些常见的字符串格式化方法和示例。 ### 使用内置 `String` 方法 #### 使用 `+` 运算符拼接字符串 ```dart String name = "John"; String greeting = "Hello, " + name + "!"; print(greeting); // 输出: Hello, John! ``` #### 使用 `${}` 进行插值 ```dart int age = 25; String info = "Name: $name, Age: ${age + 1}"; print(info); // 输出: Name: John, Age: 26 ``` #### 使用 `String.format` 方法(需要 `intl` 包) ```yaml # pubspec.yaml dependencies: intl: ^0.17.0 ``` ```dart import 'package:intl/intl.dart'; void main() { double price = 99.5; String formattedPrice = NumberFormat.currency(locale: 'en_US', symbol: '\$').format(price); print(formattedPrice); // 输出: $99.50 } ``` #### 使用 `DateFormat` 格式化日期 ```dart import 'package:intl/intl.dart'; void main() { DateTime now = DateTime.now(); String formattedDate = DateFormat('yyyy-MM-dd HH:mm:ss').format(now); print(formattedDate); // 输出: 2023-10-01 12:34:56(具体时间根据当前时间而定) } ``` #### 使用 `NumberFormat` 格式化数字 ```dart import 'package:intl/intl.dart'; void main() { int count = 1234567; String formattedCount = NumberFormat('#,###').format(count); print(formattedCount); // 输出: 1,234,567 } ``` ### 使用 `intl` 包进行国际化格式化 Flutter 提供了对国际化的支持,可以使用 `intl` 包来处理不同语言环境下的格式化需求。例如,可以通过 `AppLocalizations` 来定义本地化字符串资源,并通过 `gen_l10n` 工具生成对应的本地化代码 [^2]。 #### 示例:定义本地化资源 ```dart // app_en.arb { "greeting": "Hello, {name}!", "@greeting": "A friendly greeting" } ``` #### 使用本地化字符串 ```dart import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( localizationsDelegates: AppLocalizations.localizationsDelegates, supportedLocales: AppLocalizations.supportedLocales, home: Scaffold( appBar: AppBar(title: Text('Localization Example')), body: Center( child: Text(AppLocalizations.of(context)!.greeting('John')), ), ), ); } } ``` ### 使用 `toStringAsFixed` 格式化浮点数 ```dart double value = 3.1415926; String formattedValue = value.toStringAsFixed(2); print(formattedValue); // 输出: 3.14 ``` ### 使用 `padLeft` 和 `padRight` 填充字符串 ```dart int number = 5; String paddedNumber = number.toString().padLeft(3, '0'); print(paddedNumber); // 输出: 005 ``` ### 总结 在 Flutter 中,字符串格式化可以通过多种方式实现,包括基础的字符串拼接、插值,以及更复杂的国际化格式化(如 `intl` 包)。开发者可以根据具体需求选择合适的方法来处理字符串。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值