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

1 回复

更多关于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"
}
回到顶部