• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

dart时间处理的几个方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、时间处理的方法

1、获取当前时间

new DateTime.now();

 

2、设置时间

new DateTime(2020, 11, 11, 12, 37 , 36);

 

3、解析时间

DateTime.parse('2018-10-10 09:30:36');

 

4、时间加减

// 加10分钟
now.add(new Duration(minutes: 10))

// 减2小时
now.add(new Duration(hours: -2))

 

5、比较时间

var d3 = new DateTime(2019, 6, 20);
var d4 = new DateTime(2019, 7, 20);
var d5 = new DateTime(2019, 6, 20);

print(d3.isAfter(d4));//是否在d4之后 false
print(d3.isBefore(d4));//是否在d4之前 true 
print(d3.isAtSameMomentAs(d5));//是否相同 true

 

6、计算时间差

var d6 = new DateTime(2019, 6, 19, 16 , 30);
var d7 = new DateTime(2019, 6, 20, 15, 20);
var difference = d7.difference(d6);
print([difference.inDays, difference.inHours,difference.inMinutes]);//d6与d7相差的天数与小时,分钟 [0, 22, 1370]

 

7、时间戳

print(now.millisecondsSinceEpoch);//单位毫秒,13位时间戳  1561021145560
print(now.microsecondsSinceEpoch);//单位微秒,16位时间戳  1561021145560543

 

二、一个例子

目标:输出发布时间

规则:小于一分钟,输出‘刚刚’;小于一小时,输出‘xx分钟前’;小于一天,输出‘xx小时前’;小于三天,输出‘xx天前’;大于三天,且在本年度内,输出‘xx月xx日’;大于三天,但不在本年度内,输出‘xx年xx月xx日’。

思路:先保证时间戳正确,然后比较当前时间和发布时间。

代码:

  String get publishTime {
    var now = new DateTime.now();
    var longTime = this.toString().length < 13 ? this * 1000 : this;
    var time = new DateTime.fromMillisecondsSinceEpoch(longTime);
    var difference = now.difference(time);
    int days = difference.inDays;
    int hours = difference.inHours;
    int minutes = difference.inMinutes;
    String result = '';
    if (days > 3) {
      bool isNowYear = now.year == time.year;
      var pattern = isNowYear ? 'MM-dd' : 'yyyy-MM-dd';
      result = new DateFormat(pattern).format(time);
    } else if (days > 0) {
      result = '$days天前';
    } else if (hours > 0) {
      result = '$hours小时前';
    } else if (minutes > 0) {
      result = '$minutes分钟前';
    } else {
      result = '刚刚';
    }
    return result;
  }

 

END---------------

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【dart学习】--Dart之async和await发布时间:2022-07-14
下一篇:
Mac安装Dart的SDK发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap