Flutter日期时间格式化插件date_time_formatter的使用
Flutter日期时间格式化插件date_time_formatter的使用
本插件用于将UNIX(毫秒)时间戳转换为美观且易于理解的时间和日期格式。
使用
在pubspec.yaml文件中添加插件依赖:
dependencies:
date_time_formatter: 0.0.2+1
在Dart文件中导入库:
import 'package:date_time_formatter/date_time_formatter.dart';
通过TimeFormatter格式化任意UNIX时间戳(整型,自纪元以来的毫秒数)。如果你的项目使用Firebase,并且获取的时间是以时间戳格式存储的,则需要将其转换为人类可读的格式。例如,从Firebase获取的时间戳可以传递给TimeFormatter进行处理:
TimeFormatter(
Time: Timestamp(1659089683, 98000000),
),
格式
此插件目前仅支持一种时间格式:
- 示例:7:00 am
- 示例:12:00 pm
完整示例代码
以下是一个完整的示例代码,展示了如何使用date_time_formatter插件来格式化时间戳:
import 'package:date_time_formatter/date_time_formatter.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Date Time Formatter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(title: 'Date Time Formatter Demo'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title),
),
body: Center(
child: TimeFormatter(
/// 将 `null` 替换为你的时间戳对象以进行格式化
time: Timestamp(1659089683, 98000000), // 示例时间戳
),
),
);
}
}
更多关于Flutter日期时间格式化插件date_time_formatter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter日期时间格式化插件date_time_formatter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在 Flutter 中,date_time_formatter 是一个用于日期和时间格式化的插件。它可以帮助你轻松地将 DateTime 对象格式化为各种字符串形式,或者将字符串解析为 DateTime 对象。以下是如何使用 date_time_formatter 插件的详细步骤。
1. 添加依赖
首先,你需要在 pubspec.yaml 文件中添加 date_time_formatter 插件的依赖:
dependencies:
flutter:
sdk: flutter
date_time_formatter: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get 来安装依赖。
2. 导入包
在你需要使用日期时间格式化的文件中,导入 date_time_formatter 包:
import 'package:date_time_formatter/date_time_formatter.dart';
3. 格式化日期时间
你可以使用 DateTimeFormatter 类中的方法来格式化 DateTime 对象。以下是一些常用的格式化示例:
void main() {
DateTime now = DateTime.now();
// 格式化日期
String formattedDate = DateTimeFormatter.format(now, 'yyyy-MM-dd');
print('Formatted Date: $formattedDate'); // 输出: 2023-10-05
// 格式化时间
String formattedTime = DateTimeFormatter.format(now, 'HH:mm:ss');
print('Formatted Time: $formattedTime'); // 输出: 14:30:45
// 格式化日期和时间
String formattedDateTime = DateTimeFormatter.format(now, 'yyyy-MM-dd HH:mm:ss');
print('Formatted DateTime: $formattedDateTime'); // 输出: 2023-10-05 14:30:45
// 自定义格式化
String customFormat = DateTimeFormatter.format(now, 'dd/MM/yyyy HH:mm');
print('Custom Format: $customFormat'); // 输出: 05/10/2023 14:30
}
4. 解析字符串为 DateTime
你还可以使用 DateTimeFormatter 将字符串解析为 DateTime 对象:
void main() {
String dateStr = '2023-10-05 14:30:45';
// 解析字符串为 DateTime
DateTime dateTime = DateTimeFormatter.parse(dateStr, 'yyyy-MM-dd HH:mm:ss');
print('Parsed DateTime: $dateTime'); // 输出: 2023-10-05 14:30:45.000
}
5. 支持的格式化符号
date_time_formatter 支持以下格式化符号:
yyyy: 四位数的年份yy: 两位数的年份MM: 两位数的月份dd: 两位数的日期HH: 24小时制的小时hh: 12小时制的小时mm: 两位数的分钟ss: 两位数的秒钟a: AM/PM 标记
6. 其他功能
date_time_formatter 还提供了其他一些有用的功能,例如:
-
获取当前时间的格式化字符串:
String currentTime = DateTimeFormatter.current('yyyy-MM-dd HH:mm:ss'); print('Current Time: $currentTime'); -
获取相对时间(如“2小时前”):
DateTime pastTime = DateTime.now().subtract(Duration(hours: 2)); String relativeTime = DateTimeFormatter.relativeTime(pastTime); print('Relative Time: $relativeTime'); // 输出: 2小时前

