本文已参与「新人创作礼」活动,一起开启创作之路。

这是【Flutter 问题系列第 39 篇】,如果觉得有用的话,欢迎关注专栏。

在开发中难免会碰到计算两个日期的时间差问题,而在 Flutter 中获取两个日期的时间差也很简单,

直接使用 difference 方法就行。以 1992 年 04 月 04 日为初始日期,以 2021 年 07 月 25 日为结束日期为例

DateTime startDate = DateTime(1992, 4, 4); // 初始日期
DateTime endDate = DateTime.now(); // 结束日期

如下图所示,可以看到 difference 方法支持的属性和对应的返回值,经常用的无非天、时、分、秒,注意返回值为 int 类型。其它属性大家可以了解下

【Flutter 问题系列第 39 篇】Flutter 计算两个日期的时间差(相差多少天,时,分,秒)
1、相差多少天

int days = endDate.difference(startDate).inDays; // 10704 天

2、相差多少小时

int hours = endDate.difference(startDate).inHours; // 256910 小时

3、相差多少分钟

int minutes = endDate.difference(startDate).inMinutes; // 15414648 分钟

4、相差多少秒

int seconds = endDate.difference(startDate).inSeconds; // 924878906 秒

5、相差多少毫秒

int milliseconds = endDate.difference(startDate).inMilliseconds; // 924880218888

6、日期差是否为负数

bool startDiff = startDate.difference(endDate).isNegative;// true
bool endDiff = endDate.difference(startDate).isNegative; // false

查看 difference 方法源码可以看到其返回值是 Duration ,而 Duration 类则是用来表示时间差值的类,该类提供了很多关于时间计算的方法,像上面的获取相差的天、时、分、秒等都是 Duration 类的 get 方法,如下所示

【Flutter 问题系列第 39 篇】Flutter 计算两个日期的时间差(相差多少天,时,分,秒)

关于在 Flutter 计算两个日期的时间差便介绍到这里。

你的问题得到解决了吗?欢迎在评论区留言。

赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。


结束语

Google 的 Flutter 越来越火,截止 2021年7月25日 GitHub 标星已达 125K,Flutter 毅然是一种趋势,所以作为前端开发者,没有理由不趁早去学习。

无论你是 Flutter 新手还是已经入门了,不妨先点个关注,后续我会将 Flutter 中的常用组件(含有源码分析、组件的用法及注意事项)以及可能遇到的问题写到稀土博客中,希望自己学习的同时,也可以帮助更多的人。