Flutter 时间戳格式化日期,仿微信显示

前言

转了一圈,没有找到相关的代码可以Copy,无奈只能自己写了,希望能帮到你~
ps:本人也是刚刚接触Flutter时间不久,如果代码存在瑕疵,欢迎指正!

一键复制代码

static String ucTimeAgo(int millTime) {
    //当前日期
    DateTime _nowDate = DateTime.now();
    //传入的日期 millTime为毫秒级时间戳
    DateTime _conDate = DateTime.fromMillisecondsSinceEpoch(millTime);

    //转换后的时间
    String _returnTime = '';

    if (_nowDate.year != _conDate.year) {
      _returnTime = '${_conDate.year}年';
    }

    if (_nowDate.month != _conDate.month) {
      _returnTime = _returnTime + '${_conDate.month}月';
    }

    if (_nowDate.day != _conDate.day) {
      if (_nowDate
              .difference(DateTime(_conDate.year, _conDate.month, _conDate.day))
              .inDays ==
          1) {
        _returnTime = '昨日 ';
      } else {
        _returnTime = _returnTime + '${_conDate.day}日 ';
      }
    }

    // 凌晨:0时至5时;早晨:5时至8时;上午:8时至11时;中午:11时至13时;下午:13时至16时;傍晚:16时至19时;晚上:19时至24时。

    int _conHour = _conDate.hour;

    if (_conHour >= 0 && _conHour < 5) {
      _returnTime = _returnTime + '凌晨';
    } else if (_conHour >= 5 && _conHour < 8) {
      _returnTime = _returnTime + '早晨';
    } else if (_conHour >= 8 && _conHour < 11) {
      _returnTime = _returnTime + '上午';
    } else if (_conHour >= 11 && _conHour < 13) {
      _returnTime = _returnTime + '中午';
    } else if (_conHour >= 13 && _conHour < 16) {
      _returnTime = _returnTime + '下午';
    } else if (_conHour >= 16 && _conHour < 19) {
      _returnTime = _returnTime + '傍晚';
    } else if (_conHour >= 19 && _conHour <= 23) {
      _returnTime = _returnTime + '晚上';
    }

    return _returnTime +
        _conHour.toString().padLeft(2, '0') +
        ':' +
        _conDate.minute.toString().padLeft(2, '0');
  }

演示效果

演示效果
数据不足,只展示 时间段 +小时+分钟,其它请自行测试

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值