android用到的工具类全部都要重新封装啊,此次封装的是事件日期处理工具类,主要包括常用的对时间日期的处理功能,后续会根据需要慢慢完善,有需求也可以留言,都会补充
此次为了格式化日期,使用了一个第三方库date_format,这个库也是非常常用的第三方格式化日期的库,先把库的依赖添加到yaml文件中
#日期格式化
date_format: ^2.0.4
下面就是封装的类,我都设为了静态方法,方便直接使用
import 'package:date_format/date_format.dart';
class TimeUitls {
//格式化的一些模板
static final List<String> yyyy_MM_dd = [
"yyyy",
"-",
"mm",
"-",
"dd",
];
static final List<String> yyyy_MM_dd2 = [
"yyyy",
"年",
"mm",
"月",
"dd",
"日",
];
static final List<String> yyyy_MM_dd_HH_mm_ss = [
"yyyy",
"-",
"mm",
"-",
"dd",
" ",
"HH",
":",
"nn",
":",
"ss"
];
static final List<String> yyyy_MM_dd_HH_mm_ss2 = [
"yyyy",
"年",
"mm",
"月",
"dd",
"日",
" ",
"HH",
"时",
"nn",
"分",
"ss",
"秒"
];
//获取当前时间戳,返回为毫秒
static int getTimeStamp() {
return DateTime.now().millisecondsSinceEpoch;
}
//时间戳转换为日期并格式化
static String getDateFromStamp(int timeStamp, List<String> formats) {
DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(timeStamp);
return formatDate(dateTime, formats);
}
//当前日期并格式化
static String getCurrentDate(List<String> formats) {
return formatDate(DateTime.now(), formats);
}
//string类型日期格式化
static String formatStringDate(String date, List<String> formats) {
DateTime dateTime = DateTime.parse(date);
return formatDate(dateTime, formats);
}
//日期转时间戳
static int getTimeStampByStringDate(String date) {
DateTime dateTime = DateTime.parse(date);
return dateTime.millisecondsSinceEpoch;
}
//比较前一个日期是否小于后面的日期
static bool date1Befordate2(String date1, String date2) {
int timeStamp1 = getTimeStampByStringDate(date1);
int timeStamp2 = getTimeStampByStringDate(date2);
if (timeStamp1 >= timeStamp2) {
return false;
} else {
return true;
}
}
}
提供了一些模板可供选择,Flutter对日期的格式化其实利用这个库直接写也挺方便的,但为了把所有的日期格式化的方法都统一起来,都封装起来,所以写了一个这个类,以后所有的对于日期的计算和操作都会使用到这个类,顺便提供了几个常用的格式化模板,我感觉还挺好用的,使用方法如下
TextView("当前时间戳:${TimeUitls.getTimeStamp()}"),
TextView(
"当前日期:${TimeUitls.getCurrentDate(TimeUitls.yyyy_MM_dd_HH_mm_ss)}"),
TextView(
"时间戳转日期:${TimeUitls.getDateFromStamp(TimeUitls.getTimeStamp(), TimeUitls.yyyy_MM_dd_HH_mm_ss2)}"),
TextView(
"String类型格式化:${TimeUitls.formatStringDate("20210101 101022", TimeUitls.yyyy_MM_dd2)}"),
TextView("日期转时间戳:${TimeUitls.getTimeStampByStringDate("20210202")}"),
TextView("日期比较:${TimeUitls.date1Befordate2("20210202", "20210303")}"),
有问题可以留言