Flutter日期时间格式化插件flutter_datetime_format的使用
Flutter日期时间格式化插件flutter_datetime_format的使用
Flutter Datetime Format 🌟
A simple plugin to format dates and times in Flutter. 📅
Introduction 🚀
flutter_datetime_format
包提供了一个易于使用的插件,用于将 DateTime
对象格式化为自定义的日期/时间字符串。该插件支持常见的日期和时间占位符(别名),可以格式化显示完整的月份名称、缩写的星期几等。它非常灵活,允许开发人员使用预定义的别名指定自定义格式模式。
Format Aliases 🔤
您可以使用以下占位符(别名)在自定义格式字符串中:
YYYY
: 年份(例如:2024) 📆MM
: 月份(两位数字,例如:09 表示九月) 🗓️MMMM
: 完整的月份名称(例如:September) 🌼DD
: 月份中的天数(两位数字,例如:05) 🔢EEE
: 缩写的星期几名称(例如:Sun, Mon) 📅HH
: 小时(24小时制,例如:14 表示下午2点) ⏰hh
: 小时(12小时制,例如:02 表示下午2点) 🕑mm
: 分钟(两位数字,例如:05) ⏲️ss
: 秒(两位数字,例如:30) ⏱️md
: 上午/下午标记(例如:AM, PM) 🌙
Installation 📦
要使用此包,请在 pubspec.yaml
文件中添加 flutter_datetime_format
作为依赖项:
dependencies:
flutter_datetime_format: ^0.0.1
然后运行:
flutter pub get
Example Usage 💻
以下是如何使用 flutter_datetime_format
来格式化日期和时间的示例:
示例代码
import 'package:flutter/material.dart';
import 'package:flutter_datetime_format/flutter_datetime_format.dart' as fd;
import 'package:intl/date_symbol_data_local.dart';
void main() async {
// Initialize the locale data
WidgetsFlutterBinding.ensureInitialized();
await initializeDateFormatting('fr', null); // Example: Initialize for French
await initializeDateFormatting('es', null); // Example: Initialize for Spanish
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
DateTime date = DateTime(2024, 9, 22, 14, 5, 30); // Example date
DateTime pastDate =
DateTime.now().subtract(const Duration(hours: 5)); // 5 hours ago
DateTime futureDate =
DateTime.now().add(const Duration(days: 2)); // 2 days from now
DateTime? nullDate; // Example null date
return MaterialApp(
home: Scaffold(
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
// Example 1: Default formatting
Center(
child: Text(
fd.FLDateTime.formatTime(date, 'DD/MM/YYYY - (HH:mm)'),
style: const TextStyle(
fontSize: 22,
color: Colors.red,
fontWeight: FontWeight.bold,
),
),
),
// Example 2: Localization Support
Center(
child: Text(
fd.FLDateTime.formatTime(date, 'EEE, MMMM DD, YYYY',
locale: 'en'),
style: const TextStyle(
fontSize: 22,
color: Colors.blue,
fontWeight: FontWeight.bold,
),
),
),
Center(
child: Text(
fd.FLDateTime.formatTime(date, 'EEE, MMMM DD, YYYY',
locale: 'es'),
style: const TextStyle(
fontSize: 22,
color: Colors.green,
fontWeight: FontWeight.bold,
),
),
),
// Example 3: Relative Time Formatting
Center(
child: Text(
fd.FLDateTime.formatRelative(pastDate),
style: const TextStyle(
fontSize: 22,
color: Colors.purple,
fontWeight: FontWeight.bold,
),
),
),
Center(
child: Text(
fd.FLDateTime.formatRelative(futureDate),
style: const TextStyle(
fontSize: 22,
color: Colors.orange,
fontWeight: FontWeight.bold,
),
),
),
// Example 4: Null Date with Fallback
Center(
child: Text(
fd.FLDateTime.formatTime(nullDate, 'DD/MM/YYYY'),
style: const TextStyle(
fontSize: 22,
color: Colors.red,
fontWeight: FontWeight.bold,
),
),
),
],
),
),
);
}
}
Key Updates
formatTime(date,format)
: 添加了formatTime
方法,用于本地化日期格式化和自定义格式支持。formatRelative(date,ref)
: 添加了formatRelative
方法,用于格式化相对时间,如 “2小时前” 或 “3天后”。- deprecate:
formatCustom
→ 使用formatTime
替代。 - deprecate:
formatHour12
→ 使用formatTime
替代。 - deprecate:
formatName
→ 使用formatTime
替代。 - fix: 在
formatTime
中处理null
的DateTime
值,并提供回退字符串。
Resources 📌
Feel free to contribute, report issues, or request new features on GitHub.
希望这个回答能帮助你更好地理解和使用 flutter_datetime_format
插件!如果有任何问题或需要进一步的帮助,请随时提问。
更多关于Flutter日期时间格式化插件flutter_datetime_format的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复