做个网站需要什么设备,上海商城,用记事本制作html网页代码,一般公司网站的后台管理在哪今天介绍一下 DateTime 的一些常用功能#xff0c;对其进行一个整理。
最近在开发过程中好多时候都会使用到时间方面的方法#xff0c;心想还是统一处理一下#xff0c;封装一个管理类#xff0c;这个类可以满足我们开发过程中常用的时间方法。
今天正好整理了一下#…今天介绍一下 DateTime 的一些常用功能对其进行一个整理。
最近在开发过程中好多时候都会使用到时间方面的方法心想还是统一处理一下封装一个管理类这个类可以满足我们开发过程中常用的时间方法。
今天正好整理了一下写一篇博客贴出来分享一下如果大家有需要可直接复制粘贴即可。
DateTime 是我们常用的一个功能在和服务器打交道时将时间戳转成时间展示将时间转成时间戳传给服务器等方法。
在介绍 DateTime 功能时我需要介绍一下 date_format 插件。
这个 date_format 是一个时间格式处理工具是我们在开发过程中时间方面常用的插件下面是 插件网址介绍
date_format 时间格式插件https://pub.dev/packages/date_format
那如何使用呢代码如下
我们要使用 date_format 创建制定的时间格式例如YYYY-MM-DD HH:MM:SS
实现代码如下 [yyyy, -, mm, -, dd, , HH, :, mm, :, ss]
当然在使用的时候我们需要先将 date_format 引用一下
import package:date_format/date_format.dart;
时间转化的方法如下
String formatDate(DateTime date, ListString formats,{DateLocale locale const EnglishDateLocale()})
其中 date 就是我们的时间formats 就是上述面的时间格格式数组。 介绍到这就已经满足我们的功能使用了如果想看更多方法大家可以去上面的插件网站看一下详细介绍。 下面就是正文开始
1、date_format 引入
date_format: ^2.0.7
然后我们 pub get 一下即可。
2、代码实现
代码实现相对非常简单这里我就不一一介绍了我在代码里的注释已经写的很详细了大家如果有不理解的地方可以在评论区或者私信找我即可。废话不多说直接上代码。
我们需要创建一个类 DateUtil.dart ,当然名字大家可以随便写这个无所谓。下面是完整代码。
import package:date_format/date_format.dart;class DateUtil {/// 获取当前时间static DateTime currentDateTime DateTime.now();/// 获取当前时间戳/// millisecondsSinceEpoch 秒/// microsecondsSinceEpoch 毫秒static int get currentTimeStamp currentDateTime.millisecondsSinceEpoch;/// 获取某个时间的时间戳/// dateTime 时间static int getTimeStamp(DateTime dateTime) dateTime.millisecondsSinceEpoch;/// 将某一个时间戳转时间/// timeStamp 时间戳static DateTime getTimeStampToDateTime(int timeStamp) DateTime.fromMicrosecondsSinceEpoch(timeStamp);/// 判断某个年份是否是闰年/// year 年static bool isLeapYear(int year) (year % 4 0 year % 100 ! 0) || (year % 400 0);/// 获取当前某个时间是星期几默认是当前时间/// dateTime 时间static int getWeekByDate({DateTime? dateTime}) (dateTime ?? currentDateTime).weekday;/// 获取某个时间的下一天Duration(days: 1) 1 可以变成参数想传多长时间可自定义/// dateTime 时间static DateTime getNextDay({DateTime? dateTime}) (dateTime ?? currentDateTime).add(const Duration(days: 1));/// 获取某个时间的上一天Duration(days: 1) 1 可以变成参数想传多长时间可自定义/// dateTime 时间static DateTime getLastDay({DateTime? dateTime}) (dateTime ?? currentDateTime).subtract(const Duration(days: 1));/// 获取某年某个月份有多少天/// month 月份/// year 是哪年不传默认当前年static int getDaysAMonth(int month, {int? year}) month 4 || month 6 || month 9 || month 11? 30: month 2? (isLeapYear(year ?? currentDateTime.year) ? 29 : 28): 31;/// 获取某个时间字符串展示 例如2024-01-01 00:01:01/// dateType 时间格式类型/// dateTime 某个时间不传默认 当前时间static String? getDateFormatTime({DateType? dateType, DateTime? dateTime}) formatDate(dateTime ?? currentDateTime, (dateType ?? DateType.YYYYMMDD).format);/// 将某个时间转成字符串/// dateTime 某个时间不传默认 当前时间static String getTimeStr({DateTime? dateTime}) (dateTime ?? currentDateTime).toString();/// 将某个字符串转成时间/// timeString 某个时间字符串static DateTime getDateByStr(String timeString) DateTime.parse(timeString);/// 比较两个时间大小static TimeSort timeComparison(DateTime time1, DateTime time2) time1.isBefore(time2)? TimeSort.descending: time1.isAfter(time2)? TimeSort.ascending: TimeSort.same;/// 获取两个时间相差多久/// ⚠️注意Duration 是用来表示时间跨度差值的类例如27天4小时12分钟和3秒。/// ⚠️注意Duration 提供了很多时间单位转换的方法以及时间加减计算的方法使用起来非常方便。static Duration getDifferenceTime(DateTime time1, DateTime time2) time1.difference(time2);
}enum DateType {YYYY([yyyy]),YYYYMM([yyyy, -, mm]),YYYYMMDD([yyyy, -, mm, -, dd]),YYYYMMDDHH([yyyy, -, mm, -, dd, , HH]),YYYYMMDDHHMM([yyyy, -, mm, -, dd, , HH, :, mm]),YYYYMMDDHHMMSS([yyyy, -, mm, -, dd, , HH, :, mm, :, ss]);final ListString format;const DateType(this.format);
}enum TimeSort {ascending(升序),descending(降序),same(相同);final String title;const TimeSort(this.title);
}注意⚠️代码中的 DateType 是负责设置展示时间展示样式的枚举TimeSort 是时间比较的 枚举。
以上就是时间管理的常用到的方法可以基本满足大家的使用如果不满足大家可以在我这个基础上扩一些方法就行了。
到此就完成了DateTime一些常用的方法介绍大家如果有一位可以打在评论区或者私信即可。