Flutter时间格式化插件humanize的使用
humanize介绍
humanize
是一个用于将数字和日期转换为人类可读格式的包。
使用插件humanize
以下是一些常见的用法示例:
import 'package:humanize/humanize.dart' as humanize;
void main() {
print(humanize.appNumber(1)); // 输出:one
print(humanize.ordinal(3)); // 输出:3rd
}
函数
appNumber
对于数字 1-9,返回其拼写的单词。否则,返回原始数字。
import 'package:humanize/humanize.dart' as humanize;
void main() {
print(humanize.appNumber(1)); // 输出:one
print(humanize.appNumber(5)); // 输出:five
print(humanize.appNumber(15)); // 输出:15
}
ordinal
将整数转换为其序号字符串形式。例如,1 转换为 '1st'
,2 转换为 '2nd'
,3 转换为 '3rd'
,以此类推。
import 'package:humanize/humanize.dart' as humanize;
void main() {
print(humanize.ordinal(80)); // 输出:80th
print(humanize.ordinal(81)); // 输出:81st
print(humanize.ordinal(82)); // 输出:82nd
print(humanize.ordinal(83)); // 输出:83rd
print(humanize.ordinal(84)); // 输出:84th
}
intComma
将整数转换为带有逗号分隔符的字符串。例如,3000 转换为 '3,000'
,45000 转换为 '45,000'
。
import 'package:humanize/humanize.dart' as humanize;
void main() {
print(humanize.intComma(80010000)); // 输出:80,010,000
}
TODO
intWord
将大整数转换为友好的文本表示形式。适用于超过 1 百万的数字。例如,1000000 转换为 '1.0 million'
,1200000 转换为 '1.2 million'
,1200000000 转换为 '1.2 billion'
。
import 'package:humanize/humanize.dart' as humanize;
void main() {
print(humanize.intWord(1000000)); // 输出:1.0 million
}
naturalDay
对于与当前日期相比为明天、今天或昨天的日期值,返回对应的字符串。否则,返回根据 DATE_FORMAT
格式化的字符串。
import 'package:humanize/humanize.dart' as humanize;
void main() {
// 示例:假设当前日期为 2023-10-01
print(humanize.naturalDay(DateTime(2023, 10, 2))); // 输出:Tomorrow
print(humanize.naturalDay(DateTime(2023, 10, 1))); // 输出:Today
print(humanize.naturalDay(DateTime(2023, 9, 30))); // 输出:Yesterday
}
naturalTime
对于日期和时间值,显示距离当前时间的秒数、分钟数或小时数,并返回对应的字符串。
import 'package:humanize/humanize.dart' as humanize;
import 'dart:async';
void main() {
DateTime past = DateTime.now().subtract(Duration(minutes: 30));
print(humanize.naturalTime(past)); // 输出:30 minutes ago
}
更多关于Flutter时间格式化插件humanize的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter时间格式化插件humanize的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
humanize
是一个用于将时间、数字等格式化为更易读的字符串的 Flutter 插件。它可以帮助你将时间差、日期、数字等转换为更人性化的表达方式,例如 “2 minutes ago”、“3 days ago” 等。
安装 humanize
插件
首先,你需要在 pubspec.yaml
文件中添加 humanize
插件的依赖:
dependencies:
flutter:
sdk: flutter
humanize: ^0.2.0
然后运行 flutter pub get
来安装依赖。
使用 humanize
插件
1. 格式化时间差
humanize
插件提供了一个 humanize
函数,可以将时间差格式化为更易读的字符串。
import 'package:humanize/humanize.dart' as humanize;
import 'package:intl/intl.dart';
void main() {
DateTime now = DateTime.now();
DateTime past = now.subtract(Duration(minutes: 5));
String humanized = humanize.humanize(past, now);
print(humanized); // 输出: "5 minutes ago"
}
2. 格式化日期
humanize
还提供了 naturalDay
函数,可以将日期格式化为更自然的表达方式,例如 “Today”、“Yesterday” 等。
import 'package:humanize/humanize.dart' as humanize;
import 'package:intl/intl.dart';
void main() {
DateTime now = DateTime.now();
DateTime yesterday = now.subtract(Duration(days: 1));
String naturalDay = humanize.naturalDay(yesterday, now);
print(naturalDay); // 输出: "Yesterday"
}
3. 格式化数字
humanize
还支持将数字格式化为更易读的字符串,例如 “1.2K”、“3.5M” 等。
import 'package:humanize/humanize.dart' as humanize;
void main() {
int number = 1200;
String humanizedNumber = humanize.compactNumber(number);
print(humanizedNumber); // 输出: "1.2K"
}