flutter_utils_plus 0.0.1
flutter_utils_plus: ^0.0.1 copied to clipboard
Flutter开发工具包
使用说明 #
Moment #
- 解析
Moment([DateTime|String|int|Moment])
Moment.utc([DateTime|String|int|Moment])
// 示例
Moment() // 默认为此刻 等同于 Moment(DateTime.now())
Moment(DateTime.parse('1969-07-20 20:18:04')) // DateTime 格式
Moment('2025-12-01 12:00:00') // 字符串格式
Moment(1318781876406) // 时间戳(毫秒)
Moment.utc()
Moment.utc(DateTime.parse('1969-07-20 20:18:04'))
Moment.utc(1318781876406)
Moment.utc('2025-12-01 12:00:00')
- 操作
Moment().toDate() // 获取 DateTime 对象
Moment().toUtc() // 转换为Utc时间
Moment().unix() // 获取时间戳
Moment().add(Duration duration); // 加法
Moment().add(Number value, String unit);
Moment().subtract(Duration); // 减法
Moment().subtract(Number value, String unit);
Moment().isBefore(dynamic dateTime); // 是否之前
Moment().isAfter(dynamic dateTime); // 是否之后
Moment().isBetween(dynamic startDateTime, dynamic endDateTime); // 是否之间
Moment().isSame(dynamic dateTime, String unit) // 是否相同
// unit参数可简写(注意:isSame方法参数全称不带s且支持年[year->y]、月[month->M])
// days -> d
// hours -> h
// minutes -> m
// seconds -> s
// milliseconds -> ms
// 示例
Moment().add(1, 'd') // 明天
Moment().add(12, 'hours') // 12小时之后
Moment().add(Duration(days: 7)) // 7天之后
Moment().subtract(1, 'd') // 昨天
Moment().subtract(12, 'hours') // 12小时之前
Moment().subtract(Duration(minutes: 10)) // 10分钟之前
Moment().isBefore('2025-12-01 12:00:00') // 今天是否在该日期之前
Moment().isAfter(DateTime.parse('1969-07-20 20:18:04')) // 今天是否在该日期之后
Moment().isBetween('2025-12-01 12:00:00', '2026-12-01 12:00:00') // 今天是否在该日期之间
Moment().isSame('2025-12-01 12:00:00', 'day') // 该日期是否和今天是用一天
- 显示
Moment().format() // 默认输出DateTime
Moment().format(String)
// format格式化规则:
// 年(YYYY/YY)
// 月(MM/M)
// 日(DD/D)
// 时(HH/H/hh/h)
// 分(mm/m)
// 秒(ss/s)
// 上午下午(A/a)
// 示例
Moment().format() // 2025-01-01 20:12:12.000+0800
Moment().format('YYYY-MM-DD') // 2025-01-01
Moment().format('YYYY-MM-DD HH:mm:ss') // 2025-01-01 20:12:12
- 时区
如需使用 Timezone 时区,需引入timezone包,并且在main函数中初始化时区数据库。
// main.dart
import 'package:timezone/data/latest.dart' as tz;
void main() {
tz.initializeTimeZones();
}
// 示例
Moment.utc('2024-09-01 00:00:00').tz('America/New_York').format('YYYY-MM-DD HH:mm:ss')
Moment('2025-10-01 00:00:00').tz('Asia/Shanghai', true).toUtc().format()
Validate #
isEmpty : 验证是否为空(null/'')
isTrueEmpty : 验证是否为空(null/''/0/false/[]/{})
isChinese : 验证是否含中文
isMobile : 验证电话号码
isEmail : 验证邮箱
isBank : 验证银行卡号
isVersion : 验证版本号
isIDCard : 验证身份证号码
isURL : 验证 URL
isIP : 验证 IP 地址
isDate : 验证日期格式(YYYY-MM-DD)
isDateTime : 验证日时间格式(YYYY-MM-DD HH:mm:ss)
isAccount : 验证账号(只包含数字/字母/下划线/减号)
isPwd : 验证密码(包含字母、数字、特殊符,任意2种)
UtilsPlus #
- 字符串
camelCase : 蛇形转驼峰
snakeCase : 驼峰转蛇形
padStart : 字符串长度补全(起始)
padEnd : 字符串长度补全(结尾)
maskPhone : 隐藏部分电话号码
- 数字
formatAmount : 金额千分位逗号分隔
插件开发 #
创建插件
flutter create --template=package hello
运行 test 目录下的所有测试文件
flutter test
# 或运行指定测试文件
flutter test test/example_test.dart
运行检验命令
flutter pub publish --dry-run
运行以下提交命令
flutter pub publish --server=https://pub.dartlang.org